Tom Lehman
Tom Lehman

Reputation: 89173

Having trouble rendering Javascript in Rails

Here's the relevant controller code:

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

Here's what's in success.js.erb:

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

Here's the error I get:

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'

Thoughts?

Upvotes: 1

Views: 441

Answers (1)

theIV
theIV

Reputation: 25774

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

Hope this helps.

Upvotes: 2

Related Questions