2017-02-19 54 views
0

甲導軌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}。這個語法中的語法不合適,爲什麼?

回答

1

您需要用雙引號:

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