我正在使用rails 3并且之间有HABTM(has_and_belongs_to_many) 用户< - >电子邮件 用户也可以为用户定义角色作为subs,pubs,其中有一个模型引用自身进行映射。
我想为一个用户发送一些电子邮件到垃圾邮件/垃圾邮件/等。 我如何实现,就好像我删除了一封电子邮件,它将被删除给每个拥有HABTM的用户。 我只想将该电子邮件显示为垃圾邮件/垃圾邮件等。 我想通过在表格中设置垃圾邮件/垃圾桶标志/列来覆盖HABTM表,以便当用户将垃圾邮件/垃圾邮件标记为电子邮件时。他能够工作 有没有办法/惯例呢。
答案 0 :(得分:1)
我认为你可以设置你的关联,如下所示。请注意dependent: :destroy
。删除用户时,ActiveRecord将在模型上调用dependent: :destroy
并删除相关模型。
class User < ActiveRecord::Base
has_many :emails, through: :user_emails
has_many :emails, dependent: destroy
end
class UserEmail < ActiveRecord::Base
belongs_to :user
belongs_to :email
end
class Email < ActiveRecord::Base
has_many :users, :through: :user_emails
has_many :user_emails, :dependent: :destroy
end
您可以在Polymorphic Associations下查看。希望这有助于
更新查询has_many
协会
@UserEmail = UserEmail.find(:all,
:joins => :user, :email,
:conditions => ["email.email_trashed = ? ", true]
)
不是100%肯定这会起作用,但我认为它是沿着它们排列的。