У меня есть полиморфная ассоциация discussions
с использованием следующей модели:
class CreateDiscussions < ActiveRecord::Migration[5.2]
def change
create_table :discussions do |t|
t.references :organization, foreign_key: true
t.references :discussable, polymorphic: true
t.references :content, foreign_key: true
t.timestamps
end
end
end
и модель определяется как
class Discussion < ApplicationRecord
belongs_to :organization
belongs_to :discussable, polymorphic: true
has_one :content
end
, который создает столбцы discussable_id
и discussable_type
, как я и ожидал.
Другая сторона ассоциации определяется как
module Concerns
module Discussable
extend ActiveSupport::Concern
included do
has_many :discussions, as: :discussable, dependent: :destroy
end
end
end
когда я пытаюсь создать дискуссию по моей обсуждаемой теме, я получаю следующую ошибку.
it 'can be added to a feature' do
expect(feat.discussions).to be_empty
Discussion.create(discussable: feat, content: content)
Какие ошибки с:
Failure/Error: Discussion.create(discussable: feat, content: content)
ActiveModel::MissingAttributeError:
can't write unknown attribute `discussion_id`
Rails версия 5.2.3