Railsで標準のajaxライブラリを使用しています。私は、ページをリフレッシュすると要素が正常に更新されるため、イベントが発生していることがわかります。ここで私はajaxを開始する私のビューコードです。RoR ajaxがページを更新しないpage.replace_html
<% form_tag('switch_car', :method => :put, :remote => true) do %>
<div class="field">
<label>Car Name:</label>
<%= select_tag(:id, options_from_collection_for_select(active_cars, "id", "name"))%><%= submit_tag "Switch Car" %>
</div>
<% end %>
はここにここに更新する必要がありますビューの部分である私のupdate.js.rjs
page.replace_html('entries', render(@miles))
です。
<div id="entries">
<%= render(@miles)%>
</div>
ここは私のコントローラコードです。
def update
respond_to do |format|
if params[:id]
session[:car_info_id] = params[:id]
format.html {redirect_to entry_url}
format.js
else
redirect_to switch_car_path
end
end
end
DOMを変更していない理由がわからないので、更新プログラムはページを更新せずに表示されますか?私はそれがjavascriptを実行するが、ビューは更新されないことをサーバーコンソールで見ることができます。
コンソール出力:
Started POST "/switch_car" for 127.0.0.1 at 2011-08-03 17:32:02 -0400
Processing by ActiveCarController#update as JS
Parameters: {"utf8"=>"Γ£ô", "authenticity_token"=>"PEbdqAoiik37lcoP4+v+dakpYxdpMkSm7Ub8eZpdF9I=", "id"=>"10", "commit"=>"Switch Car", "_"
=>""}
Rendered active_car/update.html.erb (0.0ms)
Completed 200 OK in 16ms (Views: 16.0ms | ActiveRecord: 0.0ms)
レンダリングされていないupdate.js.rjsレンダリングされたactive_car/update.html.erb(0.0ms)。リクエストフォーマットはhtml(jsではない)です: 'Started POST"/switch_car "' – Hck