1

我现在有 3 个模型,组、用户和资产。

我应该如何建模它

  1. 用户属于组,组有很多用户
  2. 资产属于集团,集团有很多资产
  3. 组中的每个用户都可以访问资产,例如@user.assets将获取资产的信息

谢谢。

4

2 回答 2

0

在 user.rb 中:

def assets
  return self.group.assets
end
于 2012-07-11T02:18:00.063 回答
0

不需要任何花哨的东西。模型之间的基本 Rails 关联将处理所有事情。

要让用户访问组的资产,我建议使用delegate.

有关delegate查看Rails 指南的更多信息:Active Support Core Extensions

class Group < ActiveRecord::Base
  has_many :users
  has_many :assets 
end

class Asset < ActiveRecord::Base
  belongs_to :group
end

class User < ActiveRecord::Base
  belongs_to :group
  delegate :assets, :to => :group
end

使用委托允许您@user.assets按照您的要求访问资产。

于 2012-07-11T02:24:49.867 回答