2012-09-11 72 views
2

我正在制作一个activeadmin页面来更新当前用户的密码。我有一个非持续模型来检查密码验证等我的问题是,当我尝试activeadmin操作的自定义路由?

ActiveAdmin.register UpdatePassword do 
    actions :edit, :update 
end 

它创建路由/ update_passwords /:ID和/ update_passwords /:ID /编辑。

我想通过get和put来将这些路由更改为/ update_passwords。

有什么方法可以改变它吗?

回答

8

我不能找到一种方法与activeadmin做,而是定义手动工作的途径:

#config/routes.rb 
match "/admin/update_passwords" => 'admin/update_passwords#edit', via: :get, as: "admin_update_passwords" 
match "/admin/update_passwords" => 'admin/update_passwords#update', via: :post 
0

在我看来,该控制器名称UpdatePassword是混乱的。

的路径最终被类似:

edit_admin_update_passwords_path 
update_admin_update_passwords_path 

我认为这将是更好:

ActiveAdmin.register Password do 
    actions :edit, :update 
end 

ActiveAdmin.register User do 
    actions :edit, :update 
end 
2

虽然问题是2岁左右,但是您可以实现路由以及使用collection_action或的定制方法。 Refer this

+1

该文档没有说如何在显示页面上添加约束。比方说,通常这个资源是通过id来查看的。现在,我希望能够通过他的电子邮件查看,所以我需要更多的限制。这个怎么做? – Chamnap

相关问题