0
제품보기 표시에서 모델 조인을 통해 has_many를 Producttracklisting 목록에 중첩하려고합니다. 이 작업을 수행하는 올바른 방법은 무엇입니까? 여러 가지 실패한 시도에 대해 여러 가지 오류가 나타납니다.조인 모델의 양식을 중첩하는 올바른 방법은 무엇입니까?
<%= form_for(@producttracklisting) do |f| %>
<%= f.label :track_id %>
<%= f.text_field :track_id %>
<%= f.label :product_id %>
<%= f.text_field :product_id %>
<%= f.submit %>
<% end %>
을 그리고 내가 사용하는 제품/쇼 에이을 가지고 노력하고있어 : 모두와 함께
<%= render 'producttracklistings/form' %>
다음과 같이
class Product < ActiveRecord::Base
has_many :producttracklistings
has_many :tracks, :through => :producttracklistings
end
class Track < ActiveRecord::Base
has_many :producttracklistings
has_many :products, :through => :producttracklistings
end
class Producttracklisting < ActiveRecord::Base
belongs_to :product
belongs_to :track
end
양식은 다음과 같이 모델은 위의 NilClass에 대한 "정의되지 않은 메서드`model_name '이 있습니다. Class"
감사합니다.
대단히 감사합니다! – Raoot
사실, 그게 내가 무엇을하는지 모르겠다. 나는 '중첩 된'이라는 단어를 오용했을 수도 있다고 생각한다. 내가하고 싶은 것은 Producttracklisting 양식을 제품 쇼보기로 불러 와서 해당 제품에 트랙을 연결할 수 있습니다. 기본적으로 '제품에 추가'버튼을 사용하여 각 트랙을 표시하는 루프를 실행할 계획입니다. 이것은 제품 트랙 목록/새로운보기 내에서 완벽하게 작동합니다. – Raoot
아 ... 알겠습니다. 좋습니다, 잘 "NilClass : Class"에 대한 정의되지 않은 메서드'model_name' 오류는 form_for 호출에서 주어진 변수로 모델 이름을 해석 할 수 없다는 것을 의미합니다 (ergo @producttracklisting이 설정되지 않음). 따라서 동일한 양식을 사용하려면 컨트롤러에서이 변수를 설정해야합니다. 즉,'@producttracklisting = @ product.producttracklistings.build' 또는 그 ... – Vapire