내 갤러리에 새 그림 레코드를 만들려고합니다. 사용자는 하나의 공급 업체를 만들 수 있으며 많은 갤러리를 만들 수 있습니다. 각 갤러리는 많은 그림을 가질 수 있습니다. 그림의 새보기를 통해 새 그림을 만들려고 할 때 새 작업 중에 문제가 발생합니다. 이 과정에서 내 컨트롤러 방법은 Has_many 연관이 보이지 않습니까? activerecord 관계 오류
def new
@picture = current_account.vendor.galleries.pictures.new
end
그러나, 이것은 액티브 관계에 대한 정의되지 않은 메서드 오류 '사진'을 반환 ...입니다.
은 참고로 완전히 @picture를 통해 연결을 우회 액티브 :: 관계에 대한 클라이언트의
이
NoMethodError :: PicturesController은 # 새로운 정의되지 않은 메서드 '사진'... = Picture.new는 잘 작동하지만 나는 갤러리/공급 업체 & 사용자 계정을 적절하게 범위를 좁히려 고 노력하고 있습니다. 나를 혼란 무엇
협회가 accepts_nestred_attributes_for fields_for &를 통해 갤러리 새/편집 양식을 통해 직접 작동하는 것 같다 (@gallery = current_account.vendor.galleries.new이 갤러리 새로운 방법입니다)하지만, 전용 사진 만들기 분리한다는 것입니다 이전 텍스트 당 갤러리 편집/새 양식 오류
하드 코딩 된 갤러리 ID를 @picture = current_account.vendor.galleries (: id => 4) .pictures.new로 바로 옮겨 보려고했지만 필사적 인 추측과 마찬가지로 사진이 깨졌습니다.
나는 여기서 뭔가 명백한 것이 빠져있는 것 같아. 이견있는 사람?
감사합니다.
냈다 모델은 ...
class Gallery < ActiveRecord::Base belongs_to :vendor has_many :pictures class Picture < ActiveRecord::Base belongs_to :vendor belongs_to :gallery
(나는 그림의 테이블이 gallery_id 가지고 있다는 것을 확인했습니다 정수 열) ...
냈다 루트 (냈다 클라이언트 네임 스페이스를)
자원 : 공급 업체가 할
resources :galleries do resources :pictures end
끝
감사를 시도 할 수 있습니다 ! 상황이 예상대로 진행되고 있습니다. 당신의 모범은 큰 도움이되었습니다. 마지막 예제는 처음에는 같은 관계 오류를 반환했지만, 첫 번째 예제의 그림 앞에 'first'를 붙이면 작업이 실행 중입니다. 나는 게으른 로딩을 더 읽을 필요가 있다고 생각한다. [: stackexchange가 투표를하기 전에 필요한 최소한의 평판 포인트를 여전히 밑도는 상태지만, 일단 최저치에 도달하면 되돌아 가서 그렇게 할 것입니다. – StrandedPanda