mysql - Specify a foreign key in Sequel model -
मेरे दो मॉडल हैं:
Foo:
class Foo & LT; Sequel :: मॉडल (: FOO_TABLE) set_primary_key [: KEY] # कई बार एक_to_many: बार समाप्ति बार:
वर्ग बार & lt; Sequel :: मॉडल (: BAR_TABLE) # यौगिक कुंजी set_primary_key [: कुंजी,: NBR] # Foo many_to_one से संबंधित है: foo end उम्मीद के अनुसार फ़ू काम करता है लोड हो रहा है:
<कोड> आईआरबी & gt; Foo = Foo ['ABC'] = & gt; # & Lt; Foo @values = {: Key = & gt; "एबीसी",: NAME = & gt; "एबीसी नाम"} & gt; हालांकि, जब मैं अपना बार लोड करने का प्रयास करता हूं, मुझे एक त्रुटि मिलती है:
irb & gt; बार = foo.bars = & gt; Sequel :: DatabaseError: Mysql2 :: त्रुटि: 'मेरी क्लास मॉडल में विदेशी_की निर्दिष्ट करने का सही तरीका क्या है?' ' ' अज्ञात स्तंभ 'BAR_TABLE.foo_id'
सामान्य में
आप देखना चाहते हैं विशेष रूप से, आपको सीक्वेल को यह बता देना चाहिए कि कैसे सही 'सलाखों' को खोजने के लिए एक फू दिया गया है।
यदि आप केवल अपने उदाहरण / प्रमाण: BAR_TABLE , आप ऐसा कर सकते हैं:
वर्ग फ़ू & lt; Sequel :: मॉडल (: BAR_TABLE) one_to_many: बार,: कुंजी = & gt; : My_foo_id एंड क्लास बार & lt; Sequel :: मॉडल (: BAR_TABLE) many_to_one: foo,: key = & gt; : My_foo_id end
की आवश्यकता होती है 'अगली कड़ी' डीबी = सिक्वेल। SQLite DB.create_table (: FOOBOY) {पूर्णांक: myd; स्ट्रिंग: नाम; प्राथमिक_की [: myd]} डीबी.क्रेते_टेबल (: बार्सटन) {पूर्णांक: myd; स्ट्रिंग: नाम; विदेशी_की: my_foo_id,: FOOBOY; प्राथमिक_की [: myd]} डीबी [: FOOBOY] & lt; & lt; {Myd: 1, नाम: 'Furst'} डीबी [: FOOBOY] & lt; & lt; {Myd: 2, नाम: 'सर्किंड'} डीबी [: बार्सटन] & lt; & lt; {Myd: 1, नाम: 'बॉबी', my_foo_id: 1} डीबी [: बार्सटन] & lt; & lt; {Myd: 2, नाम: 'जिमी', my_foo_id: 1} डीबी [: बार्सटन] & lt; & lt; {Myd: 3, नाम: 'XYZZY', my_foo_id: 2} वर्ग फू & lt; Sequel :: मॉडल (: FOOBOY) one_to_many: बार,: कुंजी = & gt; : My_foo_id एंड क्लास बार & lt; Sequel :: मॉडल (: बार्सटन) many_to_one: foo,: key = & gt; : My_foo_id end Foo [1] # = & gt; # & Lt; Foo @values = {: myd = & gt; 1 ,: name = & gt; "Furst"} & gt; फू [1] .bars # = & gt; [# & Lt; bar @values = {: myd = & gt; 1,: name = & gt; "बॉबी",: my_foo_id = & gt; 1}>, # और lt; bar @values = {: myd = & gt; 2, : नाम = & gt; "जिमी",: my_foo_id = & gt; 1} & gt;] फु [1] .bars.last.foo # = & gt; # & Lt; Foo @values = {: myd = & gt; 1 ,: name = & gt; "Furst"} & gt; बार। प्लास्ट # = & gt; # & Lt; bar @values = {: myd = & gt; 3,: name = & gt; "XYZZY",: my_foo_id = & gt; 2} & gt; बार .last.foo # = & gt; # & Lt; Foo @values = {: myd = & gt; 2,: name = & gt; "सर्किंड"} & gt;
Comments
Post a Comment