2011-12-21 2 views
1

Я хотел бы предупредить что-то после того, как моя форма была обновлена ​​Execute содержимого RJS после обновления

Это мой код для метода обновления:

def update 
    node_id = session[:node_id] 
    @node = Node.find(node_id) 

    respond_to do |format| 
    if @node.update_attributes(params[:node]) 
    format.html {redirect_to add_loc_path(:node_id=>session[:node_id])} #redirects use to current page 
    format.js #allowing the update method to respond to JavaScript 
    end 
    end 
end 

Это код вида:

<% form_for @expression, :url => { :controller => "expressions", :action => "update" } do |f| %> 
... 
<%= link_to_remote "say Hello", :url => { :controller => "expressions", :action => "update" }, :method => :get %> 
<%= f.submit 'Update' %> 
<% end %> 

update.js.rjs:

page.alert('Hello') 

Если я нажму на удаленную ссылку «say Hello», будет добавлен контент «update.js.rjs». Однако, если я нажимаю на «кнопке Update», ничего не насторожило, на самом деле я получаю сообщение об ошибке:

try { 
    alert("Hello"); 
    } 

catch (e) { alert('RJS error:\n\n' + e.toString()); alert('alert(\"Hello\");'); throw e } 

Я не понимаю, почему update.js.rjs кажется, работает хорошо для «link_to_remote», но дает ошибка при вызове после нажатия на кнопку <%= f.submit 'Update' %>

Возможно ли выполнить содержимое файла rjs после нажатия кнопки «Обновить»?

ответ

1

Вы должны использовать remote_form_for вместо обычного form_for.

+0

lol ... о, спасибо вам большое, я этого не осознавал :) – tanya

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