0

我有一个用户模型和一个经销商和客户模型,它们继承了用户类并且没有自己的数据库表:

class User < ActiveRecord::Base
end

class Dealer < User
  before_save :set_default_values

  def set_default_values
    self.role_id = Role.find_by_handle('dealer').id
  end
end

class Customer < User
    …
end

我不使用范围,因为我想要一个像dealer_path这样的东西和每个角色的一些自定义逻辑。

现在我想知道如何告诉我的经销商/客户模型它依赖于角色,以便我可以使用(例如)Customer.all 并获得具有“客户”角色的用户。

有人可以指出我正确的方向吗?

4

2 回答 2

0

您可以使用 Rails 的内置单表继承功能。只需向用户添加一个名为“类型”的列,并将值设置为“经销商”、“客户”等。

于 2012-08-11T08:49:47.290 回答
0

您不能将默认范围应用于您的新类吗?

class Dealer < User
  default_scope { where(:role_id) = Role.find_by_handle('dealer').id }
  ...
end
于 2012-08-11T15:13:04.103 回答