我有一个用户模型和一个经销商和客户模型,它继承了用户类并且没有自己的数据库表:
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并让用户获得“客户”角色。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
您可以使用Rails的内置Single Table Inheritance功能。只需向User添加一个名为'type'的列,并将值设置为'dealer','customer'等。
答案 1 :(得分:0)
您不能只将默认范围应用于新类吗?
class Dealer < User
default_scope { where(:role_id) = Role.find_by_handle('dealer').id }
...
end