에서, 사용자와 제 모델 has_many 사용 :때 정의되지 않은 방식 오류 foreign_key 레일 3
class FaqGroup < ActiveRecord::Base
has_many :faqs, :foreign_key => 'group_id', :order => 'position'
acts_as_list
end
번째 모델 :
class Faq < ActiveRecord::Base
belongs_to :faq_group, :foreign_key => 'group_id'
acts_as_list :scope => :faq_group
end
컨트롤러 :
def new_faq
@group = FaqGroup.find(params[:id])
@faq = @group.faqs.create(question: 'lorem', answer: 'ipsum')
을
끝
내가 부하 브라우저에서 나는 다음과 같은 오류 얻을 : 나는 새로운 관련 개체를 만들려고 할 때
undefined method `faq_group_id' for #<Faq:0xb56fcde4>
가 그래서, 기본적으로 foreign_key 그냥 무시 도착합니다. 내가 custom : foreign_key를 포기하면 모든 것이 잘 작동한다.
또 다른 관찰 될 것이라고 내가 할 경우 :이 새로운 연관된 객체를 생성만을 foreign_key를 사용하여 문제가있는 것 같다 그래서이 작품을 좋아
@group = FaqGroup.find(params[:id])
@faqs = @group.faqs
.
감사합니다.
-
는 그래서 오류입니다. 그리고 이것이 내가하는 일입니다. 기본 (faq_group_id)을 고수하고 싶다면 foreign_key 매개 변수를 전혀 변경할 필요가 없었을 것입니다. – IulianWasHere
'faq가 faq_group에 속해 있다고 말하고 있기 때문에 외래 키를 그룹의 id로 연결하고 있기 때문에 이것은 적절한 연관이 아닙니다. group이 faq와 관련이없는 경우 어떻게 외래 키를 group_id로 사용할 수 있습니까? 'group'과'faq' 두 테이블 사이에 관계가 있어야합니다. 앞에서 말했듯이, 외래 키는 끝에 '_id'가 끝에 붙습니다. –