1

だから私はVendorとを持っていUserます。ユーザーは、 、 、 、 などの多くのロールのいずれかを持つことsuperadminadminできvendorますuser

私のVendorモデルは基本的に「ストア」です。

ロールを持つユーザーにvendorモデルのインスタンスを所有してもらいたいVendor。ただし、すべてのユーザーがモデルのインスタンスを所有するわけではありませんVendor

私のVendorモデルでは、これがあります:

belongs_to :owner, :class_name => "User",
    :foreign_key => "user_id"   

しかし、すべてのベンダーが 1 つまたは多数のベンダーを持っているUserわけではないため、モデルをどうするかはわかりません。User

どうすればこれにアプローチできますか?

4

2 に答える 2

2

私はこのようにします:

User

has_one :store

Store

belongs_to :user

そして、ベンダーであるユーザーのみがストアを作成できるようにします。ストアコントローラーで

before_filter :authenticate_vendor!

def authenticate_vendor!
  # redirect unless user is vendor
end
于 2012-12-31T07:34:13.947 に答える
1

Ryan Bates によるCanCan gem、特にこの機能を調べることをお勧めします。これは、ベンダー オブジェクトに対するロールの確立と権限の制御の両方に役立ちます。

アソシエーションに関する限り、has_many vendorsユースケースのサウンドから使用し、コントローラーからアクセスを制御する必要があります。

于 2012-12-31T07:33:24.587 に答える