本文介绍了在Rails中呈现Java脚本时遇到问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是相关的控制器代码:

Here's the relevant controller code:

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'

有想法吗?

推荐答案

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

You need to to_s your updated_at, because escape_javascript expects a String. updated_at returns a ActiveSupport::TimeWithZone.

希望这会有所帮助.

这篇关于在Rails中呈现Java脚本时遇到问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 16:17