2014-06-30 55 views
1

我有我的AttachmentsMembers表遷移爲:的ActiveRecord無法刪除記錄

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/[email protected]/gems/activerecord-3.2.18/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `prepare 

代碼for 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.last從我的控制檯我得到同樣的錯誤,但AttachmentsMember.first工作。

任何人解釋爲什麼問題即將到來?

+0

您能否顯示模型以及您在控制檯中使用的命令? –

+0

@WayneConrad修改了帖子 – Neha

+0

有人可以告訴我上述問題的原因嗎? – Neha

回答

1

通過創建AttachmentsMember表的主鍵解決了此問題