2009-08-28 5 views
1

Вот соответствующий код контроллера:Возникли проблемы рендеринга Javascript в 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' 

Мысли?

ответ

2

Вам необходимо to_supdated_at, потому что escape_javascript ожидает строку. updated_at возвращает ActiveSupport::TimeWithZone.

Надеюсь, это поможет.

+0

ARGGHHHHH! 'escape_javascript' должен позаботиться об этом автоматически! –

+0

Я согласен, я не понимаю, почему это не так. – theIV

Смежные вопросы