5

我正在使用 activeadmin 创建一个页面来更新当前用户的密码。我有一个非持久化模型来检查密码验证等。我的问题是当我尝试

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

它创建路由 /update_passwords/:id 和 /update_passwords/:id/edit。

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

有什么办法可以改变吗?

4

3 回答 3

12

我找不到使用 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
于 2012-09-24T18:31:06.530 回答
3

collection_action虽然这个问题大约有 2 年的历史,但您可以使用or实现路由以及自定义方法member_action参考这个

于 2015-01-29T10:31:06.990 回答
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
于 2013-03-18T20:53:01.113 回答