0

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

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

所以我有三个表,用户、发票和 User_Invoice_Viewers(这些基本上映射了可以查看发票的用户)

现在我的模型:

用户.rb:

has_many :invoices
has_many :user_invoice_viewers
has_many :invoices, through :user_invoice_viewers

发票.rb

belongs_to user_invoice_viewers
belongs_to :user

User_Invoice_Viewers.rb

belongs_to :users
belongs_to :invoices

现在这似乎是错误的......我在用户模型上重复 has_many :invoices,所以我预计执行时会发生冲突:User.invoices ...

什么是最好的解决方案?我曾想过将其全部放在 user_invoice 表上,但由于我希望拥有比查看者更多的所有者,出于性能原因,我决定在发票与其所有者之间建立直接依赖关系......

谢谢

4

1 回答 1

1

我会考虑在关联上使用 :class_name 选项,以便这两个关系以不同的方式命名。像这样的东西:

class User < ActiveRecord::Base

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

  ...

end
于 2012-07-13T03:06:02.667 回答