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

派手なものは必要ありません。モデル間の基本的なレールの関連付けがすべてを処理します。

ユーザーがグループのアセットにアクセスできるようにするには、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 に答える