最初のモデル:
class FaqGroup < ActiveRecord::Base
has_many :faqs, :foreign_key => 'group_id', :order => 'position'
acts_as_list
end
2 番目のモデル:
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 は無視されます。カスタム :foreign_key をあきらめると、すべてうまくいきます。
別の観察結果は、私がそうする場合:
@group = FaqGroup.find(params[:id])
@faqs = @group.faqs
それは正常に動作するため、新しい関連オブジェクトを作成する場合にのみ、foreign_key を使用すると問題が発生するようです。
ありがとうございました!