我有一个 Rails 3 应用程序在 link_to 上使用不显眼的 Javascript,以创建一个需要用户输入的小窗口。这是原始按钮(当客户添加猫时):
<%= link_to "New Cat", new_client_cat_path(@client), :remote => true, :class => "btn btn-primary btn-large" %>
在 app/controllers/cats_controller.rb 中:
def new
@cat = @client.cats.build
@submit_label = "Create"
respond_to do |format|
format.html
format.js { }
end
end
在 app/views/cats/new.js.erb 中:
$('#<%= dom_id(@cat) %> .details').html('<%= escape_javascript render("new") %>');
在 app/views/cats/_new.html.erb 中:
<h2>New Cat</h2>
<%= form_for [@client, @cat] do |f| %>
<%= f.error_messages %>
<%= f.submit @submit_label, :class => "btn btn-primary btn-large" %>
<% end %>
<%= link_to "Cancel", @client, :class => "btn btn-primary btn-large" %>
我的问题是我没有看到渲染的“新”窗口。日志文件显示这些页面已呈现:
Rendered cats/_new.html.erb (3.8ms)
Rendered cats/new.js.erb (5.4ms)
我怎样才能知道输出被渲染到哪里,以便我可以弄清楚为什么我没有在用户单击“New Cat”按钮的同一个窗口中看到它?