0

Show 모델에 대한 Form_for가 있습니다. 밴드를 추가하기 위해 form_for에서 fields_for를 사용하고 싶습니다. 것은 레코드를 업데이트하기 위해 양식을 사용할 때 필드를 밴드에 묶는 것을 원하지 않습니다. 밴드의 이름이 바뀌면 새로운 밴드의 퍼포먼스를 업데이트하고 싶습니다.중첩 된 양식으로 조인 모델 사용 (has_many : 관계를 통해)

쇼는

class Show < ActiveRecord::Base 
    has_many :performances 
    has_many :bands, through: :performances 
    accepts_nested_attributes_for :bands 
end 

class Band < ActiveRecord::Base 
    attr_accessible :name, :website, :country, :state 
    has_many :performances 
    has_many :shows, through: :performances 

    validates :name, presence: true, uniqueness: true 
end 

class Performance < ActiveRecord::Base 
    attr_accessible :show, :band 
    belongs_to :show 
    belongs_to :band 
end 

여기 내 양식입니다 공연을 통해 밴드와 결합되어있다.

문제는 이것이 밴드 이름을 변경하는 데 사용되면 밴드 이름을 변경한다는 것입니다 (미친 짓?). Band 레코드를 업데이트하고 싶지는 않습니다. Band.find_or_create를 수행하고 새 밴드의 ID로 실적 레코드를 업데이트하고 싶습니다. 이 방법으로 사용자는 쇼에서 밴드를 제거하고 이름을 제거하고 다른 밴드 이름을 추가 할 수 있습니다.

성능 아이디가 아닌 밴드 ID (내가 생각하는) 같은

뭔가 포함해야한다 렌더링 된 HTML :

<input id="show_performance_attributes_1_id" name="show[performance_attributes][1][id]" type="hidden" value="62"> 

방법이 작업이 완료를?

+1

으로 변경하십시오. 게시물 요청을 처리하는 작업에 코드를 작성해야합니다. – phoet

+0

field_for를 호출하는 방법을 변경할 필요가 없습니까? – wiredin

답변

0

좋아, 그래서 내 자신의 질문에 대한 해결책을 찾을 수있었습니다. 원래의 질문에 충분한 내용을 제공하지 못했을 수 있습니다.

그러나 해결 방법은 단순히 밴드 모델 대신 Fields_for에서 중첩 필드로 성능 모델을 사용하는 것입니다. 쇼 모델을 accepts_nested_attributes_for performances으로 변경하고 성능 모델을 accepts_nested_attributes_for band