2009-12-16 2 views
1

연관성에 문제가 있습니다. RoR의 초보자로서, RoR site에있는 가이드의 연상에 대해 배웠습니다. 이 예문 중 하나를 편지에 거의 따라갔습니다. 단 하나만 변경되는 것은 클래스 이름입니다. 예를 들면 다음과 같습니다.레일 관련 오류로 인해 typus와 관련이 있습니다

class Document < ActiveRecord::Base 
    has_many :sections 
    has_many :paragraphs, :through => :sections 
end 

class Section < ActiveRecord::Base 
    belongs_to :document 
    has_many :paragraphs 
end 

class Paragraph < ActiveRecord::Base 
    belongs_to :section 
end 

내 프로젝트에서는 문서, 섹션 및 단락 대신 마법사, 페이지 및 필드가 사용됩니다. 이 예를 따르는 것 외에도 Typus을 관리 인터페이스로 사용하고 있습니다. 모든 것이 잘 작동하는 것으로 보입니다. 나는 마법사를 만들었다. 그런 다음 마법사 섹션에서 페이지를 만들었습니다. 페이지와 연결된 필드를 만들려고하면 오류가 발생했습니다.

ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection in Admin/fieldsController#create 

Cannot modify association 'Wizard#fields' because the source reflection class 'Field' is associated to 'Page' via :has_many. 

불행히도 (그리고 그것은 내 검색 용어일지도 모른다.) 구글은 나에게 도움이되는 것으로 보이는 것을 아무것도 보이지 않는 것처럼 보인다. 누구든지이 작업을 수행하는 방법에 대한 조언이 있습니까? 모든 것을 분명하게 진술하지 않았다면 미안해.

답변

0

아마도 페이지 섹션 대신 마법사 섹션에서 필드를 추가하려고 했습니까? 필드를 추가 할 페이지를 알아야하기 때문에 작동하지 않습니다.

+0

죄송 합니다만, typus가 현재 마법사와 관련된 기존 페이지를 보여주는 드롭 다운 상자를 추가한다는 것을 분명히 했어야합니다. 따라서 test_wizard라는 마법사가 있다면, 예를 들어 test_page라는 페이지를 그 페이지와 연관시킬 수 있습니다. 하지만 일단 필드를 연관 시키려고하면 (test_field를 사용합니다) 모든 것이 무너집니다. test_wizard에 test_page가 표시됩니다. 필자는 Fields admin 섹션에서 직접 생성하고 test_page와 연결할 때 test_field를 표시합니다. 하지만 test_wizard에서 test_wizard (test_page와 똑같은 절차를 사용하여)를 만들려고하면 실패합니다. – BigForNothing

+0

예, 그게 무슨 뜻입니까. 설정 방법은 필드가 마법사와 직접 연결되어 있지 않습니다. 필드를 마법사와 연결하는 유일한 방법은 마법사와 연결된 페이지와 필드를 연결하는 것입니다. – mckeed