这就是我所拥有的。
client has_many branches
branch has_many projects
project has_and_belongs_to_many announcements
是否有更简单的方法可以找到给客户的公告?
我需要一系列独特的公告。
答案 0 :(得分:0)
为什么不创建一个连接表来处理客户端和公告模型之间的多对多关系?类似的东西:
Client:
has_many :announcements, :through => :client_announcements
Announcement:
has_many :clients, :through => :client_announcements
ClientAnnouncements:
belongs_to :client
belongs_to :project
然后,您可以设置一个对象来查找附加到特定客户端ID的公告,反之亦然。
PS:答案可能不是详尽无遗的,我不是原生的Rails开发人员 - 请查看API文档,了解我所涉及的内容:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html答案 1 :(得分:0)
如果客户可以有多个公告,但公告只能属于一个客户,则使用:
Client:
has_many :announcements
Announcement:
belongs_to :client
这使它保持在ActiveRecord中。您可以通过一些快速方法调用找到给定客户的公告。向下滚动到“关联加入模型”,例如:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
答案 2 :(得分:0)
您可以使用habtm
上的uniq符号创建新关系has_and_belongs_to_many :uniq_announcements, :source=>:announcements, :uniq=>true
或只是简单地调用uniq!
project.announcements.uniq