0

私のアプリには、ユーザーが作成したルールを一覧表示するユーザー ダッシュボードがあります。各ルールは「ルールセット」に追加できます。ルールごとに、クリックするとフォームが読み込まれるボタンを表示して、ユーザーがそのルールをルールセットに追加できるようにしたいと考えています。

ビューには、各ルールを表示する次のコードがあります。

<% @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」ヘルパーを使用しようとしましたが、正しい「ルール」変数を渡していません。jQuery の load() も使用しようとしましたが、jQuery を使用してパーシャルに "rule" インスタンス変数を渡す方法がわかりません。別の方法はありますか?

4

0 に答える 0