私は多面的な関連付けをプロジェクトで行っていましたので、私はそれを行うためのガイドをフォローしましたが、私には:NameError: uninitialized constant DashboardAssignment::Assignable
エラーがあります。Railsの「初期化されていない定数」エラーの多態性
モデル:
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.create(assignable: u)
u = User.find(1)
によって新しいDashboardAssignmentを作成しようとすると
t.references :assignable, null: false, polymorphic: true, index: true
それは私にエラーを与える:
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' ...
は、私は:私が持っているDashboardAssignment 移行ファイルで
class Dashboard < ActiveRecord::Base
has_one :building
has_many :dashboard_assignments
has_many :users, through: :dashboard_assignments, as: :assignable
end
何か間違っている?
マイレールのバージョンは、私はこれがあなたのクラスであるassignables
を与えるかもしれないというかかわらず注意を促してしまうあなたがthrough
関連
class Dashboard < ActiveRecord::Base
has_one :building
has_many :dashboard_assignments
has_many :users, through: :dashboard_assignments, source: :assignable
end
に代わりas
のsource
を使用する必要があります4.2.6
どのようなエラーがあなたを語っていることと呼ばれる無属性や関連がないことですDashboardAssignmentクラスで代入可能です。ダッシュボードモデルを投稿してください。 –
ok。 dashboard_assignments:を通じて、ユーザー: has_manyの:私はかなり確信しています – Levvy
追加ダッシュボードモデルは、あなたの問題は存在しているの:私はこの1つはあなたを助けることができると思いアサイナブル – bpieck