私はこの最後の日、問題に直面しました。リモートフォームを使用してオブジェクトを更新したい。基本的に、最初にフォームを送信するときにオブジェクトを更新できますが、2回目は機能しません。
だから、私は部分的にリモートフォームを持っています。
view / Missions / _table_form.haml.erb
%tr{:class => "tr_mission_#{mission.id} tr_mission"}
= form_for(mission, :url => mission_path(mission), :html => { :remote => true , :method=> :put, :format => :js, :multipart => true, :class => "my_remote_form" }) do |f|
= f.text_area :description, :size => "220x6", :class => "fill_data"
= f.submit 'Update', :class => "btn btn btn-inverse", :disable_with => "updating..."
これは私のコントローラー/app/controllers/missions_controller.rbです
def update
@mission = Mission.find(params[:id])
respond_to do |format|
format.html {
render :action => "edit"
}
format.js {}
end
end
これは/missions/update.js.erbです:
$('.tr_mission_<%= @mission.id %>').replaceWith('<%= escape_javascript( render :partial => "table_form", :locals => {:mission => @mission}).html_safe %>');
オブジェクトの更新は2回ではなく、1回機能します。firebugコンソールでは、フォームのタイプが初めてであることがわかります。text/ javascriptで、次にtext/htmlがオンになります...
助けてくれてありがとう。