0

ポリモーフィック モデルがあり、ネストされたフォームでこのモデルを使用したいと考えています。エラーは発生していませんが、フォームにネストされたフィールドが表示されません。ここに私のモデルと簡素化されたフォームがあります:

多態性モデル

class SeoMapping < ActiveRecord::Base
  belongs_to :mappingtable, :polymorphic => true
  attr_accessible :seo_url
  validates :seo_url, :presence => true, :uniqueness => true   
end

ポリモーフィック モデルを使用したページ モデル

class Page < ActiveRecord::Base
  has_one :seo_mappings, :as => :mappingtable, :dependent => :destroy
  accepts_nested_attributes_for :seo_mappings 
  attr_accessible :content, :h1, :meta_description, :title, :seo_mappings_attributes
  .........
end

今ではフォームを取り除いた

<%= form_for(@page) do |f| %>
  <% if @page.errors.any? %>
    .......
  <% end %>

  <div class="field">
    <%= f.fields_for :seo_mappings do |builder| %>
      <%= builder.label :seo_url %><br />
      <%= builder.text_field :seo_url %>
    <% end %>
  </div>

  <div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  .........
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

fields_for 要素が表示されない理由がわかりません。フィールドの accept_nested_attributes_for をコメントアウトすると、表示されます。私が間違っているところがわかりますか?

タイ

4

1 に答える 1

1

ばかげた質問かもしれませんが、これはあなたが話している作成または編集アクションですか? create の場合は、コントローラーで @page.build_seo_mapping などを呼び出しましたか?

また、(無関係かもしれませんが)has_one を使用する場合、通常は単数名詞を使用したいので、マッピングの代わりに has_one :seo_mapping を使用します。

于 2012-08-26T15:58:03.467 に答える