내 프로젝트에서 다형성 연관을 만들고 싶었으므로 레일스 가이드를 따라 가려고했지만 다음과 같은 결과가 나타났습니다. NameError: uninitialized constant DashboardAssignment::Assignable
오류가 발생했습니다.레일의 다형성 '초기화되지 않은 상수'오류
모델 :
DashboardAssignment :
class DashboardAssignment < ActiveRecord::Base
belongs_to :dashboard
belongs_to :assignable, polymorphic: true
validates :dashboard, presence: true
validates :assignable, presence: true, uniqueness: { :scope => :dashboard }
end
사용자 :
class User < ActiveRecord::Base
has_many :dashboard_assignments, as: :assignable
has_many :dashboards, through: :dashboard_assignments
end
그룹 :
class Group < ActiveRecord::Base
has_one :dashboard_assignment, as: :assignable
has_many :laboratories_assignments, as: :lab_assignable
end
대시 보드 :
는 DashboardAssignment에서class Dashboard < ActiveRecord::Base
has_one :building
has_many :dashboard_assignments
has_many :users, through: :dashboard_assignments, as: :assignable
end
마이그레이션 파일 내가 가진 :
NameError: uninitialized constant DashboardAssignment::Assignable
from P:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/activerecord-4.2.6/lib/active_record/inheritance.rb:158:in `compute_type' ...
암 I :
t.references :assignable, null: false, polymorphic: true, index: true
u = User.find(1)
이 나에게 오류를 제공 어디 DashboardAssignment.create(assignable: u)
에 의해 새로운 DashboardAssignment을 만들려고
through
관련
source
대신
as
를 사용한다이 클래스의 것을 당신에게
assignables
을 줄 수도 있지만
class Dashboard < ActiveRecord::Base
has_one :building
has_many :dashboard_assignments
has_many :users, through: :dashboard_assignments, source: :assignable
end
나는주의 것 4.2.6
어떤 오류가 당신에게 말하고있는 것은이라고 아무 속성이나 관계가 없다는 것입니다 DashboardAssignment 클래스에서 할당 할 수 있습니다. 대시 보드 모델을 알려 주시기 바랍니다. –
확인. 로, dashboard_assignments :을 통해, 사용자 : has_many : 나는 확신합니다 – Levvy
추가 대시 보드 모델은, 당신의 문제는 존재합니다 :이 하나가 당신을 도울 수 있다고 생각 할당 – bpieck