Inheritance 模型继承&x2013;使用';其中';取决于属性
我有一个用户模型和一个经销商和客户模型,它们继承了用户类,没有自己的数据库表:Inheritance 模型继承&x2013;使用';其中';取决于属性,inheritance,activerecord,ruby-on-rails-3.2,rails-models,Inheritance,Activerecord,Ruby On Rails 3.2,Rails Models,我有一个用户模型和一个经销商和客户模型,它们继承了用户类,没有自己的数据库表: 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
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
class用户
我不使用作用域,因为我需要类似于经销商路径的东西和每个角色的一些自定义逻辑
现在我想知道如何告诉我的经销商/客户模型它是角色相关的,这样我就可以使用(例如)customer.all,只需使用“customer”角色就可以获得用户
有人能给我指出正确的方向吗?你可以使用Rails的内置功能。只需向用户添加一个名为“type”的列,并将该值设置为“dealer”、“customer”等。您不能将默认范围应用于新类吗
class Dealer < User
default_scope { where(:role_id) = Role.find_by_handle('dealer').id }
...
end
class经销商
Hmm是的,但是我有一个角色模型,并将用户的角色存储为role\u id。因此我需要类似于STI的东西,role\u id:integer,而不是type:string。