ActiveRecord не удается удалить запись

#postgresql #ruby-on-rails-3.2

#postgresql #ruby-on-rails-3.2

Вопрос:

У меня есть таблица AttachmentsMembers с миграцией как:

 class AttachmentsMembers < ActiveRecord::Migration
  def change
    create_table :attachments_members, :id => false do |t|
      t.references :attachment, :null => false
      t.references :member, :null => false
    end

    add_index :attachments_members, [:attachment_id, :member_id]
  end
end
  

Если я попытаюсь удалить какую-либо запись со своей консоли, я получу следующую ошибку:

 ActiveRecord::StatementInvalid: PG::Error: ERROR:  zero-length delimited identifier at or near """"
LINE 1: ...OM "attachments_members" WHERE "attachments_members"."" = $1
                                                                ^
: DELETE FROM "attachments_members" WHERE "attachments_members"."" = $1
from /home/icicle/.rvm/gems/ruby-2.0.0-p353@ltbuddy/gems/activerecord-3.2.18/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `prepare
  

Код для модели AttachmentsMember:

 class AttachmentsMember < ActiveRecord::Base
  #Relationships
  belongs_to :attachment
  belongs_to :member
end
  

В модели вложения:

   belongs_to :user, class_name: 'User', foreign_key: 'user_id'
  belongs_to :attachable, polymorphic: true
  belongs_to :referable, polymorphic: true

  has_many :attachments, as: :referable, :dependent => :destroy

  has_many :attachments_members, :dependent => :destroy
  has_many :members, :through => :attachments_members, :dependent => :destroy
  

В модели участника:

   belongs_to :user, class_name: 'User', foreign_key: 'user_id'
  belongs_to :case, class_name: 'Case', foreign_key: 'case_id'
  belongs_to :user_type, class_name: 'UserType', foreign_key: 'user_type_id'

  has_many :attachments_members, dependent: :destroy
  has_many :attachments, :through => :attachments_members, dependent: :destroy

  has_many :documents_members, dependent: :destroy
  has_many :documents, :through => :documents_members, dependent: :destroy
  

Даже если сделать AttachmentsMember.наконец, с моей консоли я получаю ту же ошибку, но AttachmentsMember.first работает.

Кто-нибудь объяснит, почему возникает проблема?

Комментарии:

1. Не могли бы вы, пожалуйста, показать модель, а также команду, которую вы используете в консоли?

2. @WayneConrad отредактировал сообщение

3. Может кто-нибудь, пожалуйста, сказать мне причину вышеупомянутой проблемы?

4. Решена проблема путем создания первичного ключа для таблицы AttachmentsMember

5. Вы можете ответить на свой собственный вопрос, а затем поставить в качестве ответа галочку. Это может помочь кому-то в будущем.

Ответ №1:

Решена проблема путем создания первичного ключа для таблицы AttachmentsMember