2013-09-25 6 views
7

RailsGuides का कहना है:क्या मॉडल का उपयोग किया जा सकता है जब मॉडल के किसी अन्य मॉडल के एक या शून्य उदाहरण होते हैं?

http://guides.rubyonrails.org/association_basics.html एक has_many "संघ इंगित करता है कि मॉडल के प्रत्येक उदाहरण के एक और मॉडल के शून्य या अधिक उदाहरण है।"

"ए हैसोन एसोसिएशन एक और मॉडल के साथ एक-से-एक कनेक्शन भी स्थापित करता है, लेकिन कुछ अलग अर्थशास्त्र (और परिणाम) के साथ। यह एसोसिएशन इंगित करता है कि मॉडल के प्रत्येक उदाहरण में किसी अन्य मॉडल का एक उदाहरण होता है या उसके पास होता है। "

क्या इसका मतलब यह है कि अगर मैं एक एसोसिएशन स्थापित करना चाहता हूं कि मॉडल के प्रत्येक उदाहरण में शून्य या एक अन्य मॉडल का एक उदाहरण है, तो सबसे अच्छा तरीका है has_many का उपयोग करना और है_ऑन? यदि मैं has_one का उपयोग करता हूं तो मुझे क्या समस्याएं आती हैं?

धन्यवाद।

उत्तर

13

has_one सही है - जो सेटअप स्थापित है, वह अनिवार्य नहीं है जब तक कि आप अपना validations इसमें शामिल न करें। कोई सत्यापन के साथ

class Post < ActiveRecord::Base 
    has_one :author 

end 

class Author < ActiveRecord::Base 
    belongs_to :post 

end 

, किसी दिए गए post एक लेखक हो सकता है (लेकिन अधिक नहीं एक से) - -

यह थोड़ा स्पष्ट बनाने के लिए हालांकि एक लेखक आवश्यक नहीं है।

2

जब तक आप विशिष्ट सत्यापन को परिभाषित नहीं करते हैं, has_one आपको अपने मॉडल से जुड़े एक से अधिक ऑब्जेक्ट से रोकता है। शून्य ठीक है।

संबंधित मुद्दे