首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新手在这里:与同一个表的冲突关联。has_many:invoices,has_many :发票,通过: user_invoice_viewers

新手在这里:与同一个表的冲突关联。has_many:invoices,has_many :发票,通过: user_invoice_viewers
EN

Stack Overflow用户
提问于 2012-07-13 06:06:53
回答 1查看 141关注 0票数 0

这在这里看起来很基本,但实际上我发现用Rails定义这个场景有点苛刻……

也许你们中的任何人可以提供一些指导?

因此我有三个表: Users、Invoices和User_Invoice_Viewers (这些表基本上映射了可以查看发票的用户)

现在我的模型:

User.rb:

代码语言:javascript
复制
has_many :invoices
has_many :user_invoice_viewers
has_many :invoices, through :user_invoice_viewers

Invoice.rb

代码语言:javascript
复制
belongs_to user_invoice_viewers
belongs_to :user

User_Invoice_Viewers.rb

代码语言:javascript
复制
belongs_to :users
belongs_to :invoices

现在这似乎是错的..。我重复了has_many :invoices on User model,所以我希望在执行时会发生冲突: User.invoices ...

对此最好的解决方案是什么?我曾经想过把它全部放到一个user_invoice表上,但由于我希望拥有更多的所有者而不是浏览者,出于性能原因,我决定在发票和它的所有者之间建立一个直接依赖关系……

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 11:06:03

我会考虑在关联上使用:class_name选项,这样这两个关系的名称就不同了。如下所示:

代码语言:javascript
复制
class User < ActiveRecord::Base

  has_many :invoices
  has_many :user_invoice_viewers
  has_many :viewable_invoices, through :user_invoice_viewers, :class_name => "Invoice"

  ...

end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11461448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档