, 나는이 내 코드레일 고안 다형성
모델 >> 사용자 표 사용자의 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
사람들은 내가 순간이 모든 모델입니다,하지만 난 아직도 내가 해달라고, 같은 문제가 다형성 객체를 생성하고 저장하는 방법을 알고 있어야합니다.
오류는 여전히 같은
ERROR: undefined method `build_usersable' for "<#User:"
사람이 내가 미리
줄리에 감사
감사 및 감사 것이 나에게 도움이 될 수 있습니다.
나는 당신이 필요한 것을 아주 이해하지 못합니다. 위생병을 사용자에게 속시겠습니까? 사용자는 무엇에 속해 있습니까? 나는 당신이 이후에 있다고 생각하는 것은 당신이 속하는 사용자가 하나 이상의 모델을 가지고 있다는 것입니다. 그렇다면 당신은 다형성을 필요로하지 않습니다. –
물론 환자와 관리자 같은 다른 모델도 있습니다. 예를 들어 위생병 만 넣습니다. 지연과 매우 유감스럽게 생각해서 죄송합니다 !! – Julieta
나는 여전히 왜 polyorphc 관계가 필요한지 모르겠다. 왜 Medic에서 user_id를 소유하고 belongs_to 사용자를 사용하지 않습니까? 단일 사용자가 많은 사용자 연결을 가질 수 있습니까? 그렇다면 조인 테이블이 필요합니다. 위생병과 같은 다른 모델의 예를 들어 자세한 내용을 제공해 주시면 구현 사례를 제시해 드리겠습니다. –