首先,这是我目前的设置:
模型/ user.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
has_many :events
end
模型/ event.rb
class Event < ActiveRecord::Base
belongs_to :user
end
因此,这在某种意义上起作用,即用户可以使用CRUD进行许多事件。任何未登录的人只能查看和列出所有事件。
从这个初始设置开始,我现在有另一组用户是与会者,现在的用户现在实际上是事件管理员,而不仅仅是普通用户。从本质上讲,我现在有两个模型都是用户(因为他们都可以登录/注册并具有相同的字段)我认为该事件应该是这样的:
模型/ event.rb
class Event < ActiveRecord::Base
belongs_to :manager
has_many :attendees, :through => :attendance # attendance is a join model
end
但我不想为管理人员和与会者创建一个单独的表格,我正在考虑对用户模型进行子类化,但我不太清楚如何去做。我正在研究AR中的:as
和:polymorphic
参数,但我仍然不太清楚如何做到这一点。帮助
答案 0 :(得分:0)
您要查找的内容称为单表继承。 Here is one resource on the subject。还有更多。只需google for "Rails Single Table Inheritance"。