sti和has_many in rails
问题描述:
register < user
admin < user
class project
has_many :admin, :class => 'User', :conditions => "type = 'admin'"
has_many :registers, :class => 'User', :conditions => "type = 'registers'"
这里的问题是,当我使用项目has_many创建一个注册或管理员,它不会自动填充对象类到类型字段。sti和has_many in rails
像这样:project.admins.new。
如何解决这个问题?
答
你应该能够直接指定has_many关系,而不需要告诉Rails该类是User。像这样:
class User < ActiveRecord::Base
belongs_to :project
end
class Register < User
end
class Admin < User
end
class Project < ActiveRecord::Base
has_many :admins
has_many :registers
def make_new_admin
ad = admins.create(:name => "Bob")
# ad.type => "Admin"
end
end