插入在通知变量属性
问题描述:
甲导轨4控制器动作,在路线定义为一个集合,具有:插入在通知变量属性
@user_last = User.where('id = ?', params[:dayprofile][:id]).pluck("last_name")
respond_to do |format|
if @dayprofile.update(dayprofile_params)
format.html { redirect_to now_dayprofiles_path, notice: 'Status updated for #{@user_last}' }
end
end
然而渲染以文本出来作为#{@user_last}
。这个语法中的语法不合适,为什么?
答
您需要用双引号:
notice: "Status updated for #{@user_last}"
这正常工作。这是一个Ruby约定(如果你有一个适当的参考来区分用例,那将是很棒的!)?如果是这样,那么为什么Rails脚手架用单引号生成通知? – Jerome
这种方法被称为“字符串插值”。当你需要使用它时,你必须使用双引号或'+',例如''''状态已更新为'+ @ user_last'。默认情况下,rails会使用单引号生成通知,因为它们没有在那里使用插值。你可以在这里了解更多信息(http://ruby-for-beginners.rubymonstas.org/bonus/string_interpolation.html) – zolter
太棒了!赞赏参考;我真的用我的导轨冲浪而没有遇到过这个问题。 – Jerome