在Rails中渲染Javascript时遇到问题

时间:2009-08-28 01:29:16

标签: javascript jquery ruby-on-rails

以下是相关的控制器代码:

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'

思想?

1 个答案:

答案 0 :(得分:2)

您需要to_s updated_at,因为escape_javascript需要一个字符串。 updated_at会返回ActiveSupport::TimeWithZone

希望这有帮助。