2010-03-17 17 views
8

मेरे पास एक छोटा रेल ऐप है। मैं इसमें लेखापरीक्षा का निशान रखना चाहता हूं। असल में जब कोई नया उपयोगकर्ता जोड़ा जाता है। यह उपयोगकर्ता के user_id में बनाए गए और लॉग किए गए नए user_id के साथ AuditTrailUsers तालिका में एक पंक्ति डालेगा।रेल ऐप में ऑडिट ट्रेल्स कैसे बनाएं

मैं इसके लिए रेल कॉलबैक before_save का उपयोग करने के बारे में सोच रहा हूं। हालांकि, मुझे यकीन नहीं है कि यह काम करेगा या नहीं।

कल्पना कीजिए मैं model/Users.rb और model/AuditTrailUser.rb

class User < ActiveRecord::Base 
    validates_presence_of :userid, :password 
     before_save :insert_audit 

    def self.authenticate(userid, password) 
     user = self.find_by_userid_and_password(userid, password)  
    user 
    end 

    ##implement insert_audit 

end 

है कैसे मुझे लगता है कि यह एक प्रयोक्ता आईडी में ले जाता है (उपयोगकर्ता द्वारा प्रवेश की) इतना है कि यह जब AuditTrailUser.create(...) बुला AuditTrailUser करने के लिए इसे पारित कर सकते हैं तो insert_audit लागू कर सकते हैं।

अगर मैं उपयोगकर्ता का उपयोगकर्ता आईडी में लॉग इन में पारित ... तो मैं स्पष्ट रूप से जहां हर before_save फोन करना होगा ...

मैं रेल के लिए नया हूँ।

उत्तर

12

अपने रेल मॉडल में सभी परिवर्तनों को लॉग इन करने के लिए Audited मणि का उपयोग करें।

+2

वर्चुअल_एस__टेड वीस्टल संस्करण प्लगइन (http://github.com/laserlemon/vestal_versions) के लिए बेहतर विकल्प है। SO http://stackoverflow.com/questions/2323505/how-to-keep-track-of-model-history-with-mapping-table-in-ruby-on-rails –

+2

पर चर्चा की गई एक और दिलचस्प कागज़_ट्रिल https है: //github.com/airblade/paper_trail। रेलसकास्ट लिंक '255-अंडो-पे-पेपर-ट्रेल' http://railscasts.com/episodes/255-undo-with-paper-trail –

+1

लेखापरीक्षित मणि अभी भी बहुत अच्छा है और इसे काफी हद तक अद्यतित रखा गया है। इसमें कुछ अच्छी विशेषताएं भी हैं जिनमें दूसरों की कमी है। –

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