2016-08-22 30 views
0

我有一個帶有公共字段的用戶表:名稱,年齡,性別等...在我的應用程序中,當新用戶註冊時,我想檢查(批准或拒絕)他的生物和個人資料照片來驗證他的帳戶。我正在使用ActiveAdmin,我想在我的用戶索引中看到類似範圍的內容,在該索引中,我看到「未選中」用戶(我已完成該部分)和操作鏈接(在查看,編輯和刪除旁邊)以批准或拒絕生物/照片。在一個字段上的自定義操作的成員動作

我的問題是這個動作鏈接,我不知道該怎麼做。我已經看到member_actions的自定義操作,但我不明白它是如何工作的,如果我可以修改一個字段,我的用戶。一些幫助將受到歡迎。

+2

您可以使用['update_attribute(name,value)'方法](http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_attribute)更新屬性。您應該可以使用[成員操作](http://activeadmin.info/docs/8-custom-actions.html#member-actions)將自定義操作添加到用戶控制器和路徑。而不是鎖定用戶,你可以更新各種屬性並刪除他們的照片和生物。在文檔中也有一個例子,如果使用proc只顯示給管理員(取決於你的設置,我想)。 – user3366016

回答

0

ActiveAdmin讓你指定喜歡approve

ActiveAdmin.register User do 

    member_action :approve, method: :put do 
    resource.approve! 
    redirect_to resource_path, notice: "Approved!" 
    end 

end 

自定義操作,在你的模型做什麼是必要的批准,例如創建一個方法,如果approved是表中一個布爾值,然後

class User < ActiveRecord::Base 
    def approve! 
    update(approved: true) 
    end 
end 
+0

謝謝,但沒有行動鏈接或我可以點擊打電話給我的方法。還有什麼我需要做的呢? –

+0

@CharlesDuporge運行'rake routes'時,你看不到'admin/users /:id/approve'路徑? member_action應該爲你做這個。在你看來,你應該可以插入'link_to admin_user_approve_path(@user)'(或者其他的東西)。 – user3366016

+0

@ user3366016我在運行'rake routes'時看不到'admin/users /:id/approve',我只得到默認路由。也許我需要運行一些命令來生成路由? (順便說一句,「批准!」中的'!'是什麼意思?'我不知道它用於什麼) –