在 Rails 5.1 及更高版本中使用啥来代替`render :text`(和`render nothing: true`)?
Posted
技术标签:
【中文标题】在 Rails 5.1 及更高版本中使用啥来代替`render :text`(和`render nothing: true`)?【英文标题】:What to use instead of `render :text` (and `render nothing: true`) in rails 5.1 and later?在 Rails 5.1 及更高版本中使用什么来代替`render :text`(和`render nothing: true`)? 【发布时间】:2017-09-11 17:51:02 【问题描述】:Rails 5.1 removes a whole load of previously deprecated methods。其中有老朋友render :text
。
当您需要渲染 一些 文本但又不想要视图模板的开销时,它非常有用。例子:
render text: "ok"
render text: t('business_rules.project_access_denied'), status: 401
改用什么?
【问题讨论】:
【参考方案1】:不推荐使用的方式是使用render :plain
Rails Guide on Layouts and Rendering:
2.2.6 渲染文本
您可以使用
:plain
选项将纯文本(根本没有标记)发送回浏览器进行渲染:render plain: "OK"
奖金
现在应该使用head :ok
,而不是render nothing: true
(也已删除)。做同样的事情:发送 http 200 响应代码,只是标题,没有内容。
【讨论】:
这个特别的弃用让我头疼了 10 分钟。因此是自我回答。 何时弃用? 5.1.0.rc1 CHANGELOG 只是说“在render
中删除对:text
的弃用支持”(和:nothing
,叹息),但您会认为某些 CHANGELOG 中的“我们正在弃用此”注释会告诉您改用什么。
太棒了,谢谢。必须为不可避免的酒和愤怒推动升级过程添加书签:)
我喜欢 Rails,但是 cmon,这是为了让我们的升级路径变得悲惨而弃用吗?制动变化的数量令人难以置信。
误会我你不render head: :no_content
,它只是head :no_content
,如果它可以节省其他人几分钟......以上是关于在 Rails 5.1 及更高版本中使用啥来代替`render :text`(和`render nothing: true`)?的主要内容,如果未能解决你的问题,请参考以下文章
处理新版本 Android(3.x 及更高版本)中缺少的 MENU 按钮
app.EnterText() 不会在 XamarinUiTest 中输入要在 Android 7 及更高版本中输入的文本
在 API 15 及更高版本中使用 PreferenceActivity