2011-09-26 19 views
8

पर प्रीसेट मान जोड़ें मैंने इसे नियंत्रक से और सक्रिय व्यवस्थापक ओवरराइड नियंत्रक से करने की कोशिश की है और मैं इसे काम नहीं कर सकता।रेल 3 सक्रिय व्यवस्थापक नए रिकॉर्ड

उपयोगकर्ता एक वेबसाइट बनाता है। current_user में एक आईडी विशेषता वेबसाइट में उपयोगकर्ता_आईडी विशेषता

तो जब मैं एक नई वेबसाइट बनाता हूं तो मैं current_user.id को website.user_id में जोड़ना चाहता हूं। ई कैन'टी।

कोई भी जानता है कि कैसे?

अभी मुझे इसे नए/क्रियाएं बनाने की आवश्यकता है, लेकिन मुझे शायद संपादन/अपडेट क्रियाओं पर भी इसकी आवश्यकता होगी।

उत्तर

12

यह मेरे लिए काम करने के लिए लगता है:

ActiveAdmin.register Website do 

    controller do 
    # Do some custom stuff on GET /admin/websites/*/edit 
    def edit 
     super do |format| 
     # Do what you want here ... 
     @website.user = current_user 
     end 
    end 
    end 

end 

आप उसी तरह से अन्य नियंत्रक क्रियाएँ ओवरराइड करने के लिए सक्षम होना चाहिए।

4

आपको नियंत्रक को 'नई' विधि जोड़ने की आवश्यकता है। 'नई' विधि एक खाली वेबसाइट ऑब्जेक्ट बनाती है जिसे फ़ॉर्म में पास किया जाएगा। डिफ़ॉल्ट 'नई' विधि सिर्फ खाली @website ऑब्जेक्ट बनाता है। आपका 'नए' विधि खाली ऑब्जेक्ट बनाना चाहिए, और फिर वर्तमान उपयोगकर्ता के लिए उपयोगकर्ता के मान को प्रारंभ:

ActiveAdmin.register Website do 

    controller do 
    # Custom new method 
    def new 
     @website = Website.new 
     @website.user = current_user 
     #set any other values you might want to initialize 
    end 
    end 
+0

मत भूलना "नियंत्रक" परिभाषा, मैं इसे अनदेखा इस जवाब में। –

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