Rails 5.1 removes a whole load of previously deprecated methods. Among them is the old friend render :text
.
It was very useful when you need to render some text, but don't want the overhead of a view template. Examples:
render text: "ok" render text: t('business_rules.project_access_denied'), status: 401
What to use instead?
By default, if you use the :text option, the text is rendered without using the current layout. If you want Rails to put the text into the current layout, you need to add the layout: true option.
render :json essentially calls to_json and returns the result to the browser with the correct headers. This is useful for AJAX calls in JavaScript where you want to return JavaScript objects to use. Additionally, you can use the callback option to specify the name of the callback you would like to call via JSONP.
Rendering is the ultimate goal of your Ruby on Rails application. You render a view, usually . html. erb files, which contain a mix of HMTL & Ruby code. A view is what the user sees.
The non-deprecated way is to use render :plain
Rails Guide on Layouts and Rendering:
2.2.6 Rendering Text
You can send plain text - with no markup at all - back to the browser by using the
:plain
option to render:render plain: "OK"
Instead of render nothing: true
(also removed), one should now use head :ok
. Does the same thing: sends http 200 response code, just the headers, no content.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With