2012-07-08 8 views
7

मैं audited का उपयोग कर रहा हूं ताकि Page नामक मॉडल के लिए परिवर्तन ट्रैक किया जा सके। मैं एक निश्चित उपयोगकर्ता से जुड़े सभी ऑडिट ढूंढने में सक्षम होना चाहता हूं (ऑडिट तालिका में user_id के माध्यम से)।ऑडिट किया गया, उपयोगकर्ता से संबंधित लेखापरीक्षा देखें

मैं यह कैसे कर सकता हूं? यह काम करने के लिए सही तरीका है की तरह जो केवल प्रतीत नहीं होता

@audits = Audited::Adapters::ActiveRecord::Audit.all 

: अब तक, एक ही रास्ता मैं Audit मॉडल का उपयोग करने की मिल गया है इस तरह है।

@audits = Audit.all का प्रयास Uninitialized constant त्रुटि देता है।

क्या रत्नों द्वारा प्रदान किए गए मॉडल के साथ बातचीत करने का एक और अधिक शानदार तरीका है?

उत्तर

6

शायद

include Audited::Adapters::ActiveRecord::Audit

और उसके बाद की तरह कुछ आप

@audits = Audit.all

कर सकते हैं?

मुझे लगता है कि काम करना चाहिए ... या बेहतर अभी तक:

include Audited

+0

हाँ इस ग्रंथों में शामिल लेखा परीक्षित, एक सरल उदाहरण देखें: वर्ग लेखा परीक्षा nictrix

+2

लेखा परीक्षित शामिल यह ध्यान देने योग्य आप Audited.audit_class ऐसा कर सकते हैं जो तब आप काम करने के लिए अनुमति देता है लायक है Audited.audit_class.where की तरह ("...") – user3334690

1

आप

Audited::Audit.all 

के साथ सभी ऑडिट रिकॉर्ड का उपयोग कर सकते है जब मैं

टाइप किया मैं परिणाम मिला
Audited.audit_class 

डीईपीआर ECATION चेतावनी: audit_class को बहिष्कृत किया गया है और रेल 5.0 से हटा दिया जाएगा (Audited.audit_class अब हमेशा ऑडिट :: ऑडिट। यह विधि हटा दी जाएगी।)।

0

मुझे पता है कि ऐसा करने का यह एक प्रभावी तरीका नहीं है, लेकिन इस तरह मैं इसे करता हूं।

रेल कंसोल में मैं एक रिकॉर्ड पुनर्प्राप्त करता हूं जो मुझे पता है जिसे ऑडिट किया जाता है।

@page = Page.first

मैं तो उस रिकॉर्ड का पहला लेखा परीक्षा को पुनः प्राप्त।

@audit = @page.audits.first

फिर आप पर @audit

@audit.class

परिणाम #class कॉल कर सकते हैं:

Audited::Adapters::ActiveRecord::Audit(id: integer, created_at: 
datetime, updated_at: datetime, auditable_id: integer, auditable_type: 
string, user_id: integer, user_type: string, username: string, action: 
string, audited_changes: text, version: integer, comment: string, 
full_model: text, remote_address: string, associated_id: integer, 
associated_type: string, request_uuid: string) 

Audited::Adapters::ActiveRecord::Audit वर्ग के नाम है, जो आप तो आपकी खोज में उपयोग कर सकते हैं।

audits = Audited::Adapters::ActiveRecord::Audit.where(:user_id => 8675309)

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