Tôi có hai kiểu: Hiển thị và Giao dịch.Tên cột trống trong khi tiêu diệt đối tượng
class Show < ActiveRecord::Base
has_many :deals, :inverse_of => :show, :dependent => :destroy
...
class Deal < ActiveRecord::Base
belongs_to :show, :inverse_of => :deals
...
Khi tôi cố gắng để tiêu diệt Hiện tôi nhận được lỗi này:
PG::Error: ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "deals" WHERE "deals"."" = $1
Tại sao là tên cột trống rỗng? Trong schema.rb:
create_table "deals", :id => false, :force => true do |t|
t.integer "discount_id"
t.integer "show_id"
end
create_table "shows", :force => true do |t|
t.integer "movie_id"
t.integer "hall_id"
t.datetime "show_time"
t.integer "city_id"
t.integer "price"
end
chìa khóa ngoại được bổ sung vào cơ sở dữ liệu
CONSTRAINT fk_deals_shows FOREIGN KEY (show_id)
REFERENCES shows (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
T.B. Tôi đã giải quyết vấn đề này bằng cách thêm khóa chính vào bảng thỏa thuận, nhưng tôi không thực sự cần nó ở đó. Vì vậy, câu hỏi vẫn còn thực tế. Tôi có thể sử dụng phụ thuộc với các mô hình không có khóa chính id không?
trong ví dụ của bạn mối quan hệ giữa các thực thể là một-một, nhưng trong trường hợp của tôi nó là một-nhiều, do đó, 'giao dịch' là đúng – Donotello