Please disregard, it's working now and I have no idea why it didn't work for a few previous requests and I can't reproduce it any longer.

On 21-02-2014 09:16, Rodrigo Rosenfeld Rosas wrote:
I was taking another look at the guide upgrade Rails to 4.1:

"2.12 Rendering content from string
Rails 4.1 introduces :plain, :html, and :body options to render. Those options are now the preferred way to render string-based content, as it allows you to specify which content type you want the response sent as.

render :plain will set the content type to text/plain
render :html will set the content type to text/html
render :body will not set the content type header.
From the security standpoint, if you don't expect to have any markup in your response body, you should be using render :plain as most browsers will escape unsafe content in the response for you.

We will be deprecating the use of render :text in a future version. So please start using the more precise :plain:, :html, and :body options instead. Using render :text may pose a security risk, as the content is sent as text/html"


So, I was replacing something like this in my controller:

render text: json_from_redis, content_type: 'application/json' if stale? last_modified

with this:

render json: json_from_redis if stale? last_modified

and I noticed I must set the content_type even when using "render json" as it won't set it automatically (at least if the string is already json encoded).

Are there any reasons for that? The request format is :json and I'd expect the content_type to be set for the above line without the need of setting the content_type manually. Wouldn't you?

--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to