2016-09-01 5 views
2

중첩 된 리소스를 이해하는 데 문제가 있습니다. 서비스 발판이 있으며 증상 모델이 있습니다. 나는 비상 서비스 scaffold에 symptom_item 문자열을 추가 할 수 있기를 원했습니다.표시 템플릿의 중첩 된 리소스

이 내 현재 쇼 템플릿 코드 :

def service_params 
    params.require(:service).permit(:name, :s_text, :img_text, symptom_attributes: [:id, :service_item]) 
end 

I를 다음 symptom_attributes을 허용하는 것이 여기에

<%= form_for(@service) do |f| %> 
    <% if @service.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@service.errors.count, "error") %> prohibited this service from being saved:</h2> 

     <ul> 
     <% @service.errors.full_messages.each do |message| %> 
     <li><%= message %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :s_text %><br> 
    <%= f.text_area :s_text %> 
    </div> 
    <div class="field"> 
    <%= f.label :img_text %><br> 
    <%= f.text_field :img_text %> 
    </div> 

<%= f.fields_for :symptoms do |builder| %> 
    <div class="field"> 
    <%= builder.label :symptom_item %><br> 
    <%= builder.text_field :symptom_item, :rows => 3 %> 
    </div> 
<% end %> 

    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

내 컨트롤러 코드 : 여기
<% if @service.symptoms.any? %> 
    <% @service.symptoms.each do |symptom| %> 
    <li><%= symptom.symptom_item %></li> 
    <% end %> 
<% else %> 
    <p> 
    none 
    </p> 
<% end %> 

은 내 양식 코드 문제가 쇼 템플릿에 있는지 확인하십시오. 내가 같은 간단한 쓸 때 :

= @service.symptoms 

그것을 나에게 이런 펑키 뭔가를 제공합니다

#<Symptom::ActiveRecord_Associations_CollectionProxy:0x000000095295c8> 

사람이 어쩌면 일부 다른 어디 쇼 템플릿에 내 코드를 잘못 또는 무엇을 볼 수 있습니까?

class Service < ActiveRecord::Base 
    has_many :symptoms 
    accepts_nested_attributes_for :symptoms, allow_destroy: true 
end 

class Symptom < ActiveRecord::Base 
    belongs_to :service 
end 

답변

0

그것은 내가 symptoms_attributes에 symptom_attributes을 시도

def service_params 
    params.require(:service).permit(:name, :s_text, :img_text, symptoms_attributes: [:id, :symptom_item]) 
end 
+0

당신의 강력한 매개 변수 symptoms_attributes 대신 symptom_attributessymptom_item 대신 service_item해야하지만 아무것도 :

여기 내 모델은 경우에 . – pk36

+0

강력한 매개 변수에서 'service_item'대신 'symptom_item'을 시도하십시오. 수정 된 답변 – Ren