को देखते हुए दो वर्गों, एप्पल और ऑरेंज एक रेल प्रवास में विदेशी कुंजी को परिभाषित करने के बीच का अंतर है:क्या t.integer और t.reference का उपयोग कर
def class Apple < ActiveRecord::Base
has_and_belongs_to_many :oranges
end
def class Orange < ActiveRecord::Base
has_and_belongs_to_many :apples
end
क्या t.integer का उपयोग कर विदेशी को परिभाषित करने के बीच क्या अंतर है में शामिल होने तालिका में कुंजियाँ:
create_table :apples_oranges, :id => false do |t|
t.integer :apple_id
t.integer :orange_id
end
और शामिल होने तालिका में विदेशी कुंजी को परिभाषित करने के t.references का उपयोग कर:
create_table :apples_oranges, :id => false do |t|
t.references :apple
t.references :orange
end
मैंने दोनों को देखा है और वे एक दूसरे के रूप में दिखाई देते हैं। बस यह सुनिश्चित करना चाहता था कि कुछ सूक्ष्मता/जादू नहीं है जो मुझे याद आ रही है।
ओह, और मैं ऑन रेल्स 3.2 w कर रहा हूँ/MySQL
उत्कृष्ट, धन्यवाद! – plainjimbo
आप 't.reongs_to' का उपयोग' t.references' के पर्याय के रूप में भी कर सकते हैं, जो माइग्रेशन को पढ़ने वाले किसी भी व्यक्ति के लिए एसोसिएशन को और भी स्पष्ट बनाता है। – MrTheWalrus