मेरे पास दो मॉडल हैं: दिखाएँ और सौदा करें।ऑब्जेक्ट को नष्ट करते समय खाली कॉलम नाम
class Show < ActiveRecord::Base
has_many :deals, :inverse_of => :show, :dependent => :destroy
...
class Deal < ActiveRecord::Base
belongs_to :show, :inverse_of => :deals
...
जब मैं शो को नष्ट करने की मैं इस त्रुटि मिलती है कोशिश:
PG::Error: ERROR: zero-length delimited identifier at or near """"
LINE 1: DELETE FROM "deals" WHERE "deals"."" = $1
क्यों स्तंभ नाम खाली है? 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
विदेशी कुंजी डेटाबेस
CONSTRAINT fk_deals_shows FOREIGN KEY (show_id)
REFERENCES shows (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
पी.एस. को जोड़ा गया मैंने सौदे तालिका में प्राथमिक कुंजी जोड़कर इस समस्या का समाधान किया, लेकिन मुझे वास्तव में इसकी आवश्यकता नहीं है। तो सवाल अभी भी वास्तविक है। क्या मैं आईडी प्राथमिक कुंजी के बिना मॉडल के साथ निर्भरता का उपयोग कर सकता हूं?
belongs_to :show, :inverse_of => :deal
मुझे आशा है कि यह मदद करता है
आपके उदाहरण में इकाइयों के बीच संबंध एक-से-एक है, लेकिन मेरे मामले में यह एक से कई है, इसलिए 'सौदों' सही है – Donotello