我想要加载和执行两个名为"create“和"update”的.js.erb文件,以便在提交表单后用更新的部分替换我其中一个视图中的表。
这两个文件都包含以下内容(它们是相同的)
$('table#rating').replaceWith("<%= escape_javascript(render :partial => 'home/rating') %>");但是,我不确定将.js.erb文件放在哪里(在与我的html.erb页面相同的视图中?)以及如何在表单提交时加载/触发它们。任何帮助都将不胜感激。
发布于 2011-08-20 19:05:38
是的,您可以将.js.erb文件放置在与要使用它们的.html.erb文件相同的位置。为了让Rails使用它们,您需要告诉Rails表单应该异步提交(通过AJAX)。为此,只需在表单标记中添加一个:remote => true即可。例如
<%= form_for @some_model, :remote => true do %>
<!-- form stuff... -->
<% end %>发布于 2011-08-20 20:25:22
为了使用Ajax提交表单,您需要指定Ajax指出的: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/目录下。
https://stackoverflow.com/questions/7131184
复制相似问题