我正在使用设计,我想创建一个多态关系,我将列添加到表用户'usersable_type'和'usersable_id'
这是我的代码
型号 >> 用户
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
# attr_accessible :title, :body
attr_accessible :email, :password, :password_confirmation, :remember_me
#usarsable
belongs_to :usersable, :polymorphic => true, :autosave => true, :dependent => :destroy
accepts_nested_attributes_for :usersable
end
型号 >> 医疗
class Medic < ActiveRecord::Base
attr_accessible :license_number, :specialty
has_one :user, as: :usersable, dependent: :destroy
has_and_belongs_to_many :patients
end
型号 >> 患者
class Patient < ActiveRecord::Base
belongs_to :socialsecurity
attr_accessible :birthday, :blood_type
has_one :user, as: :usersable, dependent: :destroy
has_many :contacts
has_and_belongs_to_many :medics
end
覆盖设计控制器
class RegistrationsController < Devise::RegistrationsController
def new
super
@user.build_usersable # I had problem in this line
end
def create
end
def update
super
end
end
这些是我目前拥有的所有模型,但我仍然有同样的问题,我不知道如何创建和保存多态对象。
错误还是一样
错误:“<#User:”的未定义方法“build_usersable”
有没有人可以帮助我,我将不胜感激
提前致谢
朱莉。