我的应用程序有一个用户仪表板,其中列出了用户创建的规则。每个规则都可以添加到“规则集”。对于每个规则,我想显示一个按钮,单击该按钮会加载一个允许用户将该规则添加到规则集中的表单。
我的视图中有以下代码来显示每个规则:
<% @rules.each do |rule| %>
<div class="rule-wrapper">
<div class="rule-content row">
<div class="span6">
<strong>Rule:</strong> <%= rule.description %>
</div>
<div class="span2">
<div class="add-to-ruleset-form">
</div>
</div>
</div>
......
我的规则控制器的相关部分如下:
class RulesController < ApplicationController
before_filter :authenticate_user!
def add_rule_to_ruleset
@ruleset = Ruleset.find(params[:ruleset_id])
@rule = Rule.find(params[:rule_id])
@ruleset.rule << @rule
end
....
最后,这是我的 dashboard.js.erb 文件的样子:
$('.add-to-ruleset').click(function(e){
e.preventDefault();
$('.add-to-ruleset-form').html('<%= escape_javascript(link_to render :partial => "add_to_ruleset_form", :locals => {:rule => rule}) %>')
});
我希望在单击按钮(“添加到规则集”)时呈现部分内容。我尝试在我的 js.erb 文件中使用“escape_javascript”帮助程序,但它没有传递“规则”变量 corrent。我也尝试过使用 jQuery 的 load(),但我不知道如何使用 jQuery 将“规则”实例变量传递给部分。还有其他方法吗?