我有一个 Rails 3.2 ajax 表单,可以为酒店创建一个新房间。新的 Room ajax 表单在 Room 索引页面上可以正常工作,但是一旦我将新的 Room ajax 表单嵌入到酒店编辑页面上,该表单会在不使用 Ajax 的情况下正常提交。
要创建新的 Room 表单,我使用 Hotel edit.html.erb 页面上的以下链接:
<%#= link_to 'Add a Room', new_room_path(:hotel_id => @hotel.id), :remote => true, :class => 'new_room' %>
这会将以下表单部分加载到同一页面上:
<%= form_for @room, :remote => true, :html => { :class => "remote-form" } do |f| %>
<%= f.text_field :number %>
<%= f.text_field :size %>
<% if(params.has_key?(:'hotel_id')) %>
<% @hotel_id = params[:hotel_id] %>
<%= f.hidden_field :hotel_id, :value => @hotel_id %>
<% else %>
<%= f.collection_select(:hotel_id, Hotel.all, :id, :name) %>
<% end %>
<%= f.submit "Add this room", :class => 'room_create' %>
<%= link_to 'Cancel', '#', :class => "room_cancel" %>
<% end %>
最后,我的 create.js.erb 中有以下内容(在 rooms 文件夹内):
alert('Test creating a room');
var content = $('<%= escape_javascript(render(@room)) %>');
$("#room_list tbody").append(content);
create.js.erb 没有执行,并且定期提交表单(非 ajax),我终于到达了房间 show.html.erb 页面。
为什么表格在 Units 索引页面上正常工作,但在关联的酒店编辑页面上却没有?