Ruby on rails sti和SU在轨道上有很多 类寄存器“type='registers'” 结束

Ruby on rails sti和SU在轨道上有很多 类寄存器“type='registers'” 结束,ruby-on-rails,Ruby On Rails,这里的问题是,当我使用project创建注册表或管理员时,它不会自动将对象类填充到类型字段中 如下所示:project.admins.new 如何解决这个问题?您应该能够直接指定has\u many关系,而不需要告诉Rails类是用户。像这样: class Register < User end class Admin < User end class Project < ActiveRecord::Base has_many :admin, :class =>

这里的问题是,当我使用project创建注册表或管理员时,它不会自动将对象类填充到类型字段中

如下所示:
project.admins.new


如何解决这个问题?

您应该能够直接指定has\u many关系,而不需要告诉Rails类是用户。像这样:

class Register < User
end

class Admin < User
end

class Project < ActiveRecord::Base
  has_many :admin, :class => 'User', :conditions => "type = 'admin'"
  has_many :registers, :class => 'User', :conditions => "type = 'registers'"
end
class用户“Bob”)
#ad.type=>“Admin”
结束
结束
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