我有 2 个类
class Post
has_and_belongs_to_many :receivers
accepts_nested_attributes_for :receivers
end
class Receiver
has_and_belongs_to_many :posts
表的设计是:
posts: id, xxx
receivers: id, email, name, xxxx
posts_receivers: post_id, receiver_id
完全遵循这个 http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association
在我的 form 里,每个 post 都会填上几个 receiver,有时候会有同一个的 receiver 的 email 在不同的 post 里出现。这个时候我不希望我的 receiver 表中对同样的 email 新建 record(因为 nested attributes 每次会自动新建一个 receiver),而是在posts_receivers
表中根据已有的 email 的 receiver id 去建新的 record 来存储新的 post 和已有的 receiver 的关系。
请教有什么比较好的方法能实现呢?非常感谢!