我想要两个名为“create”和“update”的.js.erb文件加载并执行,以便在提交表单后用我更新的部分替换我的一个视图中的表。
文件都包含以下内容(它们是相同的)
$('table#rating').replaceWith("<%= escape_javascript(render :partial => 'home/rating') %>");
但是我不确定将.js.erb文件放在哪里(与我的html.erb页面在同一视图中?)以及如何在表单提交时加载/触发它们。任何帮助将不胜感激。
答案 0 :(得分:3)
是的,您将.js.erb
个文件放在与您正在使用它们的.html.erb
文件相同的位置。为了让Rails使用它们,你需要告诉Rails应该异步提交表单(通过AJAX)。为此,只需在表单标记中添加:remote => true
即可。例如
<%= form_for @some_model, :remote => true do %>
<!-- form stuff... -->
<% end %>
答案 1 :(得分:2)
为了使用Ajax提交表单,您需要指定Alex指出的:remote => true
选项。
在处理表单提交的控制器中也应该能够响应Ajax请求。它应该有类似的东西。
class FormHandlingController < ApplicationController
def create
...
respond_to do |format|
format.js
end
end
end
您应将craete.js.erb
放在app/views/form_handling_controllers/
目录下。