2011-09-26 29 views
8

我試圖從控制器和活動管理員重寫控制器執行它,我無法使其工作。Rails 3 Active Admin將預設值添加到新記錄

用戶創建一個網站。 CURRENT_USER有一個id屬性 網站上有一個user_id的屬性

所以,當我創建一個新的網站,我想將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

您需要爲控制器添加一個'新'方法。 '新'方法創建一個空的網站對象,將被傳遞給表單。默認的'new'方法只是創建一個空的@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

不要忘了「控制」的定義,我忽略了它在這個答案。 –

相關問題