假设我有一个模型A :: B has_many模型C,我怎么命名外键?
Class A::B
has_many :c
Class C
belongs_to :a_b
在数据库中,表C有一列a_b_id。 这不起作用。知道我错过了什么吗? ::是我很困惑的。谢谢!
答案 0 :(得分:4)
由于B
位于不同的命名空间中,因此您需要在班级C
中指定它。
class C < ActiveRecord::Base
belongs_to :a_b, :class_name => "A::B"
end
由于您使用的是a_b_id
而非b_id
,因此您需要在A::B
class A::B < ActiveRecord::Base
has_many :c, :foreign_key => "a_b_id"
end
或者,您可以使用以下设置来避免在A::B
class C < ActiveRecord::Base
belongs_to :b, :class_name => "A::B"
end
class A::B < ActiveRecord::Base
has_many :c
end
b_id
C