3

私は繭の宝石を使用して動的にネストされたフォームに取り組んでいます。私は2つのモデルを持っています

class CrossTable < ActiveRecord::Base
  attr_accessible :title, :table_name, :database, :folder_label_id, :foreign_fields_attributes

  belongs_to :folder_label
  has_many :foreign_fields

  accepts_nested_attributes_for :foreign_fields

  validates :title, :table_name, :database, :folder_label_id, presence: true

end


class ForeignField < ActiveRecord::Base
  attr_accessible :cross_table_id, :column_name, :description

  belongs_to :cross_table
  has_many :filter_sets


end

追加した gemfile に cocoon と jquery-rails があります //= application.js ファイルに cocoon が必要です

そして、ここに私のフォームの部分があります

<%= simple_form_for @table do |f| %>
    <%= f.input :title %>

    <%= f.input :folder_label_id, :collection => @folders, :label_method => :title, :value_method => :id %>
    <br><br>
    <%= f.input :table_name %>
    <%= f.input :database %>

    <%= f.simple_fields_for :foreign_fields do |fields| %>
        <%= render 'foreign_field_fields', :f => fields %>
        <div id='links'>
            <%= link_to_add_association 'Add Field', f, :foreign_fields %>
        </div>
        <% end %>

    <%= f.button :submit %>

<% end %>

@table は、クロス テーブル モデルのインスタンスです。foreign_field_fields パーシャルには何も表示されず、link_to_add_association は何も実行せず、エラーも発生しません。これのデバッグを開始するにはどうすればよいですか? 誰かがエラーを見つけますか?

4

1 に答える 1

6

link_to_add_associationの中に書き込みましたsimple_fields_for。これはすべてをループして:foreign_fields、指定されたブロックを実行します。したがって、外国フィールドがまだない場合、link_to_add_associationは表示されません。

あなたは次のようにあなたの見解を書くべきです(文書化されているように):

<%= simple_form_for @table do |f| %>
    <%= f.input :title %>

    <%= f.input :folder_label_id, :collection => @folders, :label_method => :title, :value_method => :id %>
    <br><br>
    <%= f.input :table_name %>
    <%= f.input :database %>

    <%= f.simple_fields_for :foreign_fields do |fields| %>
        <%= render 'foreign_field_fields', :f => fields %>
    <% end %>
    <div id='links'>
      <%= link_to_add_association 'Add Field', f, :foreign_fields %>
    </div>

    <%= f.button :submit %>

<% end %>

お役に立てれば。

于 2012-10-24T22:17:46.537 に答える