- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序,我想通过另一个模型(即 Task1>Relationship
基本上,关系模型会有额外的信息(type_of_relationship、lag),因此将其作为连接模型是理想的。然而,没有两个模型可以加入,只有一个……给自己。 has_many :through 仍然有效吗?如果是这样,连接表会是什么样子?使用 Rails 约定,您将有两个名为 Activity_id 的列,这显然在数据库中不起作用。
或者,我可以使用 has_many_and_belongs_to 在任务模型和关系模型之间设置多对多,但我不确定这是否准确描述了一种关系,该关系应该只链接任何一个关系模型中的两个任务模型(尽管当然任务可能属于多个关系,因此是多对多)。
我的直觉是使用 has_many_and_belongs_to 并整理模型中的规则,但有没有更好的方法来做到这一点?我要绕着这个圈子转!
任何帮助表示赞赏。
最佳答案
has_many :through 非常适合您的情况。我不知道你的模型的细节,但假设你有用户,每个用户都可以有其他用户作为联系人。您可以对这种情况进行建模,如下所示:
class User < ActiveRecord::Base
has_many :contact_records, :foreign_key => :owner_id
has_many :contacts, :through => :contact_records, :class_name => "User"
end
class ContactRecord < ActiveRecord::Base
belongs_to :owner, :class_name => "User"
belongs_to :user
end
关于ruby-on-rails - rails : has_many :through or has_many_and_belongs_to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472227/
我有一个应用程序,我想通过另一个模型(即 Task1>Relationship 基本上,关系模型会有额外的信息(type_of_relationship、lag),因此将其作为连接模型是理想的。然而,
我是一名优秀的程序员,十分优秀!