2009-08-28 55 views
1

下面是相關的控制器代碼:遇到問題Rails中呈現的Javascript

if @song.update_attributes(params[:song]) 
    respond_to do |format| 
    format.js { 
     render :action => 'success' 
    } 
    end 
else 

這裏是什麼在success.js.erb

$("#song_updated_at").val("<%= escape_javascript @song.updated_at %>") 

這是我得到的錯誤:

ActionView::TemplateError ($_ value need to be String (nil given)) on line #1 of app/views/songs/success.js.erb: 
1: $("#song_updated_at").val("<%= escape_javascript @song.updated_at %>") 

    app/views/songs/success.js.erb:1 
    app/controllers/songs_controller.rb:52:in `update' 
    app/controllers/songs_controller.rb:50:in `update' 

的思考?

回答

2

您需要to_s您的updated_at,因爲escape_javascript需要一個字符串。 updated_at返回ActiveSupport::TimeWithZone

希望這會有所幫助。

+0

ARGGHHHHH! 'escape_javascript'應該自動處理! – 2009-08-28 02:06:05

+0

我同意,我不明白爲什麼它不。 – theIV 2009-08-28 02:10:11