2012-04-01 9 views
20

के साथ has_many/belong_to एसोसिएशन पर संस्करणों को सुधारने के लिए कैसे मैं अपने मॉडल संस्करणों को ट्रैक करने के लिए रेल में पेपर_ट्रिल का उपयोग करता हूं। लेकिन जिथब रेपो पर प्रलेखन इंगित करता है कि मणि has_many, belongs_to एसोसिएशन का समर्थन नहीं करता है।paper_trail

मान लीजिए कि मैं गया है एक ऐप्लिकेशन है जो रिकॉर्ड कुछ comapnies के सीईओ के नाम हैं:

class Company < ActiveRecord::Base 
    has_many :ceos 
    has_paper_trail 
end 

class Ceo < ActiveRecord::Base 
    belongs_to :companies 
    has_paper_trail 
end 

ऊपर के उदाहरण एबीसी इंक के बारे में जानकारी का प्रतिनिधित्व

company.name => "ABC" 
company.ceo.past => "John Henry" 
company.ceo.present => "Amy Warren" 

मैं निम्नलिखित कैसे लागू कर सकते हैं ऑपरेशन ताकि यह कंपनी और कंपनी के सीओएस नाम को अंतिम संस्करण में रीसेट कर दे?

+1

क्या आपके पास इस पर कोई अपडेट है? – Robin

+1

मेरे पास एक ही समस्या है – eshaiju

उत्तर

1

आप has_many को हटाने के लिए एसोसिएशन को फिर से मॉडल करने का प्रयास कर सकते हैं क्योंकि सीईओ के मामले में, एक कंपनी के पास अपने जीवन के माध्यम से कई सीईओ हो सकते हैं, लेकिन यह केवल एक निश्चित अवधि के लिए सीईओ है।

इसका कार्यान्वयन सीईओ और कंपनी दोनों की आईडी से बने एक जॉइन टेबल में हो सकता है, और उस समय अवधि के लिए मान्य है।

एक फायदेमंद साइड इफेक्ट यह है कि किसी व्यक्ति के सीईओ के साथ 2 बार एक कंपनी के सीईओ होने के लिए यह मुश्किल हो जाएगा और डोमेन में उसमें आसान ट्रैवर्सल होगा।

0

यह कैसे संभाल करने के लिए दिए गए निर्देशों का README में पाया जा सकता: https://github.com/airblade/paper_trail/blob/master/README.md#associations

मूल रूप से या तो rails generate paper_trail:install --with-associations विकल्प के साथ स्थापना समय में या मैन्युअल रूप से यह काम करने के लिए, एक version_associations तालिका बनाने के लिए की आवश्यकता होगी।

मेरा सुझाव है कि आप यह कैसे काम करते हैं इसके बारे में विवरण के लिए गितब पर पूर्ण दस्तावेज पढ़ते हैं।

+0

यह प्रश्न का उत्तर नहीं देता है। आपने अभी इस विषय पर खराब लिखित निर्देशों की प्रतिलिपि बनाई है और चिपकाया है। – dane

+0

@ डेन शायद आप प्रश्न संपादित करके और दूसरों को, यह स्पष्ट कर सकते हैं कि ओपी तब क्या पूछ रहा है? –