0

다형성 모델이 있고이 모델을 중첩 된 양식으로 사용하고자합니다. 오류는 없지만 양식에서 중첩 필드를 표시하지 않습니다. 여기 내 모델과 옷을 벗었 형태입니다 :레일 다형성 중첩 된 속성

다형성 모델은 다형성 모델

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 

를 사용

class SeoMapping < ActiveRecord::Base 
    belongs_to :mappingtable, :polymorphic => true 
    attr_accessible :seo_url 
    validates :seo_url, :presence => true, :uniqueness => true 
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 요소를 표시하지 않습니다. accepts_nested_attributes_for 필드를 주석 처리하면 표시됩니다. 내가 어디로 잘못 가고 있는지 볼 수 있니?

TY 아마도

+1

어쩌면 어리석은 질문 일지 모르지만이게 당신이 말하는 창조 또는 편집 행동입니까? 그리고 그것이 생성되면 @ page.build_seo_mapping 또는 컨트롤러의 어떤 것을 호출 했습니까? 또한 has_one을 사용하는 경우 (관련이 없음) 일반적으로 단수 명사를 사용하고자하므로'mappings' 대신'has_one : seo_mapping'을 사용하십시오. –

+0

@ 피터 - 나는 당신이 돈을 가지고 있다고 생각합니다. @Lee, 그 연관성을'구축 '해야하거나 아무것도 표시되지 않습니다. 그리고 단수 명/복수 명사를 확실히보십시오. Rails 규칙은'has_many : seo_mappings' 또는'has_one : seo_mapping'입니다. –

+0

그래, 내가 만들어야 할 빌드 였어. 벽에 내 머리를 쾅 쾅 대고 올릴 수 있었다! 감사합니다 Peter – Lee

답변

1

바보 같은 질문이지만이 얘기하고있는 만들거나 편집 작업입니다? 그리고 그것이 생성되면 @ page.build_seo_mapping 또는 컨트롤러의 어떤 것을 호출 했습니까?

또한 has_one을 사용하는 경우 일반적으로 단수 명사를 사용하므로 has_one : mappings 대신 seo_mapping을 사용합니다 (관련이 없음).