【问题标题】:Having trouble rendering Javascript in Rails在 Rails 中渲染 Javascript 时遇到问题
【发布时间】:2009-08-28 01:29:16
【问题描述】:

这是相关的控制器代码:

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'

想法?

【问题讨论】:

    标签: javascript jquery ruby-on-rails


    【解决方案1】:

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

    希望这会有所帮助。

    【讨论】:

    • 啊啊啊啊! escape_javascript 应该自动处理这个!
    • 我同意,我不明白为什么不这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2013-04-13
    • 2010-11-02
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多