1

所以我有一个Vendor和一个User。用户可以具有以下多种角色之一:superadminadminvendoruser

我的Vendor模型本质上是一个“商店”。

我希望具有该角色的用户拥有vendor模型的一个实例Vendor。但并非所有用户都拥有该模型的实例Vendor

在我的Vendor模型中,我有这个:

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

但我不确定如何处理该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,尤其是这个功能。这应该有助于您建立角色并控制 Vendor 对象的权限。

就关联而言,您仍然应该has_many vendors从用例的声音中使用,然后从控制器控制访问。

于 2012-12-31T07:33:24.587 回答