我試圖從控制器和活動管理員重寫控制器執行它,我無法使其工作。Rails 3 Active Admin將預設值添加到新記錄
用戶創建一個網站。 CURRENT_USER有一個id屬性 網站上有一個user_id的屬性
所以,當我創建一個新的網站,我想將current_user.id加入到website.user_id。我不能。
任何人都知道如何?
現在我需要它在新建/創建操作上,但我可能也需要編輯/更新操作。
我試圖從控制器和活動管理員重寫控制器執行它,我無法使其工作。Rails 3 Active Admin將預設值添加到新記錄
用戶創建一個網站。 CURRENT_USER有一個id屬性 網站上有一個user_id的屬性
所以,當我創建一個新的網站,我想將current_user.id加入到website.user_id。我不能。
任何人都知道如何?
現在我需要它在新建/創建操作上,但我可能也需要編輯/更新操作。
這似乎爲我工作:
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
您應該能夠覆蓋在相同的方式與其他控制器的動作。
您需要爲控制器添加一個'新'方法。 '新'方法創建一個空的網站對象,將被傳遞給表單。默認的'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
ActiveAdmin.register Model do
# also look in to before_create if hidden on form
before_build do |record|
record.user = current_user
end
end
見https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/resource_dsl.rb#L156
不要忘了「控制」的定義,我忽略了它在這個答案。 –