मैं एक माता पिता/बच्चे जैसे हमारे उपयोगकर्ताओं तालिका के माध्यम से संबंध, मॉडलों के साथ है:एक मॉडल में विशिष्टता को मजबूर करने का सही तरीका? (Has_many: के माध्यम से)
class User < ActiveRecord::Base
# Parents relationship
has_many :children_parents, :class_name => "ParentsChild", :foreign_key => "child_id", :dependent => :destroy
has_many :parents, :through => :children_parents
# Children relatiopnship
has_many :parents_children, :class_name => "ParentsChild", :foreign_key => "parent_id", :dependent => :destroy
has_many :children, :through => :parents_children
...
end
और parents_child.rb में:
class ParentsChild < ActiveRecord::Base
belongs_to :parent, :class_name => "User"
belongs_to :child, :class_name => "User"
end
अभी, यह संभव है माता-पिता के लिए एक ही बच्चे के रूप में एक ही उपयोगकर्ता को जोड़ने के लिए हमारे "बच्चों को जोड़ें" फॉर्म (केवल वेनिला नेस्टेड विशेषताओं का उपयोग करके) में। मुझे यकीन नहीं है कि माता-पिता चिल्ड रिलेशनशिप में विशिष्टता को मजबूर करने के लिए 'सही' तरीका क्या है, हालांकि मैं डेटाबेस परत (पाठ्यक्रम के माइग्रेशन का उपयोग करके) (parent_id, child_id)
पर एक अद्वितीय इंडेक्स की ओर झुका रहा हूं।
मुझे यकीन है कि मैं UserController :: अद्यतन विधि में विशिष्टता बाधाओं को भी लागू कर सकता हूं, लेकिन उस कोड को बदलने से बचना पसंद करेंगे (अभी यह माता-पिता/बच्चों का बिल्कुल संदर्भ नहीं देता है, फ़ॉर्म में नेस्टेड विशेषताओं के लिए धन्यवाद/मॉडल) यदि संभव हो तो। मैं यह सुनिश्चित करने के लिए सबसे चिंतित हूं कि हम "उचित" समाधान का उपयोग करते हैं। ऐसा करने के लिए 'सही' या 'रेल' तरीका क्या है?
निश्चित रूप से पहले सरल संभव समाधान पर ध्यान दिया है चाहिए। धन्यवाद! –
हां! मैं इस के साथ इतनी देर बिताता हूं, आपका जवाब बिल्कुल वही था जो मुझे चाहिए था। – Matthew
या रेल में 4, 'है_मनी: माता-पिता, -> {uniq},: through =>: children_parents' – courtsimas