Tag: 模型关联

两个所属协会的同一模式

我有一个模型PointOfContact has_many Systems 。 从Systems方面,我想确定PointOfContact作为technical_manager或project_manager (或两者)。 虽然仍然只保留在数据库中的PointOfContact 1时间。 我的尝试如下: class System < ActiveRecord::Base belongs_to :project_manager, :class_name => 'PointOfContact' belongs_to :technical_manager, :class_name => 'PointOfContact' end class PointOfContact < ActiveRecord::Base has_many :systems end 当我运行我的规格(下面的例子),我可以正确地创buildSystem的联系点关联。 但是, PointOfContact并不知道它与系统的关联。 这是为什么? @sys = System.create @tm = PointOfContact.create @pm = PointOfContact.create @sys.project_manager = @pm @sys.technical_manager = @tm @pm.systems.should have(1).items #> expected 1 […]

Rails与多个外键的关联

我希望能够在一张桌子上使用两列来定义关系。 所以以任务应​​用程序为例。 尝试1: class User < ActiveRecord::Base has_many :tasks end class Task < ActiveRecord::Base belongs_to :owner, class_name: "User", foreign_key: "owner_id" belongs_to :assignee, class_name: "User", foreign_key: "assignee_id" end 那么然后Task.create(owner_id:1, assignee_id: 2) 这允许我执行返回用户一的 Task.first.assignee和返回用户二的 Task.first.assignee ,但User.first.task返回任何内容。 这是因为任务不属于用户,他们属于所有者和受让人 。 所以, 尝试2: class User < ActiveRecord::Base has_many :tasks, foreign_key: [:owner_id, :assignee_id] end class Task < ActiveRecord::Base belongs_to :user end […]