2014-05-19 2 views
1

기록이 삭제되지 않습니다 내가 간단한 부모 - 자식 설정이 있습니다레일 - 중첩 된 양식의 작품을 추가 할 수 있지만 내 레일 응용 프로그램에서 중첩 된 형태를 사용하고

모델 :

class Experiment < ActiveRecord::Base 
    has_many :exptypes, :dependent => :destroy 
     accepts_nested_attributes_for :exptypes, :allow_destroy => true 

class Exptype < ActiveRecord::Base 
    belongs_to :experiment 

보기 :

부모 :

<%= nested_form_for(@experiment) do |f| %> 
    <%= f.fields_for :exptypes do |builder| %> 
    <%= render 'exptype_fields', :f => builder %> 
    <% end %> 
    <p><%= f.link_to_add "Add an Experimental Type", :exptypes %></p> 

아이 :

<h2>Experiment type</h2> 
<p> 
    <div class="field"> 
    <%= f.link_to_remove "Remove this Experiment" %> 
    </div> 
    <div class="field"> 
    <%= f.label :type_name %><br> 
    <%= f.text_field :type_name %> 
    </div> 
</p> 

많은 아이들을 추가해도 문제가 없지만 목록에서 아무 것도 제거하려고하면 (link_to_remove 버튼을 클릭하면) 중첩 된 양식이 사라지지만 업데이트가되면 표시 양식에 여전히 "삭제 된"아동.

+0

가 어떻게 edit''를 통해 아이의 기록 중 하나를 제거 할 다음과 같이

내 컨트롤러의 강력한 PARAMS 방법이 보인다? – Pavan

+0

죄송합니다. 제 생각에는 의미가 있습니다. 나는 <% = f.link_to_remove "에 의해 생성 된 버튼을 누름.이 실험"%> "을 제거하면 폼의 해당 부분이 제거됩니다. – Darkstarone

+0

'%%%% f.link_to_remove'이 줄을 사용해보십시오. 다른 실험군 안에있는이 실험의 "%>"을 제거하십시오. – Pavan

답변

4

오류를 발견 했으므로 컨트롤러에 허용 된 매개 변수에 :_destroy이 없었습니다.

희망이 있으면 다른 사람에게 도움이됩니다.

편집 :

def experiment_params 
    params.require(:experiment).permit(:_destroy, :experiment_number, :date, :title, :pi, 
    :biocontrol_run_num, :goals, :description, :str, :exp_type) 
end 
+0

다행스럽게 생각해 보면 :) – Pavan

+1

'Rails 4'에 태그를 달았다면 첫 번째 질문은'강한 매개 변수'에 관한 것으로되어 있습니다. 네가 가진 어떤 방법이든! – Pavan

+1

@Pavan Rails 프레임 워크가 제공하는 자유로 Strong Params는 반 직관적입니다. – IKA