在Rails中创建关联的最佳方法

时间:2011-06-10 16:45:40

标签: ruby-on-rails associations

我希望我的User在收到时Email与特定的User.find(x).received_emails << Email.find(x).id 相关联。

通过这种方式,我可以查找他们收到的电子邮件数组。

最初,我在想为User表创建一个字符串字段,并将唯一的ID添加到数组中。

{{1}}

但是,关联模型可能有更好的方法。

建议?

2 个答案:

答案 0 :(得分:3)

您应该检查此链接:

Rails association guide

听起来你在谈论一对多的事情。如果您使用关联机制,您将获得所需的所有行为,基本上是免费的。

答案 1 :(得分:2)

class Email < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :received_emails, :class_name => 'Email'
end

User.find(x).received_emails << Email.find(y)

此方法需要在电子邮件表格中添加user_id列。

您可能希望通过使用UserEmail模型添加连接表(例如user_emails)将其更改为多对多关联。该表格包含user_idemail_id列。