gpt4 book ai didi

ruby-on-rails - 我应该在 has_many 和 belongs_to 中都使用 foreign_key 子句吗?

转载 作者:搜寻专家 更新时间:2023-10-30 22:09:29 25 4
gpt4 key购买 nike

我有两个模型。 OfficeEmployeeEmployeeoffice_id 作为 foreign_key。这些表是在命名空间下生成的。那么,哪个是正确的?

class MyNamespace::Office < ActiveRecord::Base
has_many :employees, foreign_key: 'office_id'
end

class MyNamespace::Employee < ActiveRecord::Base
belongs_to :office, foreign_key: 'office_id'
end

或者

class MyNamespace::Office < ActiveRecord::Base
has_many :employees
end

class MyNamespace::Employee < ActiveRecord::Base
belongs_to :office, foreign_key: 'office_id'
end

我认为第二个例子是正确的,因为对我来说,在 has_many 关系中声明 foreign_key 是没有意义的。一位同事认为第一个例子是正确的。但是我没有找到太多关于这个主题的引用资料。那么,有人知道哪个是正确的例子吗?为什么?

最佳答案

您可以指定前缀以正确映射到数据库中的表名,并完全删除 foreign_keys 和 MyNamespace。

class Office < ActiveRecord::Base
self.table_name_prefix = 'namespace_'
has_many :employees
end

class Employee < ActiveRecord::Base
self.table_name_prefix = 'namespace_'
belongs_to :office
end

关于ruby-on-rails - 我应该在 has_many 和 belongs_to 中都使用 foreign_key 子句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com