2016-08-22 26 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',我只得到默认路由。也许我需要运行一些命令来生成路由? (顺便说一句,“批准!”中的'!'是什么意思?'我不知道它用于什么) –