插入在通知变量属性

问题描述:

甲导轨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}" 
+0

这正常工作。这是一个Ruby约定(如果你有一个适当的参考来区分用例,那将是很棒的!)?如果是这样,那么为什么Rails脚手架用单引号生成通知? – Jerome

+0

这种方法被称为“字符串插值”。当你需要使用它时,你必须使用双引号或'+',例如''''状态已更新为'+ @ user_last'。默认情况下,rails会使用单引号生成通知,因为它们没有在那里使用插值。你可以在这里了解更多信息(http://ruby-for-beginners.rubymonstas.org/bonus/string_interpolation.html) – zolter

+0

太棒了!赞赏参考;我真的用我的导轨冲浪而没有遇到过这个问题。 – Jerome