activeadmin操作的自定义路由?

时间:2012-09-11 13:44:29

标签: ruby-on-rails activeadmin

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

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

它创建routes / update_passwords /:id和/ update_passwords /:id / edit。

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

有没有办法改变它?

3 个答案:

答案 0 :(得分:11)

我找不到使用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

答案 1 :(得分:3)

虽然问题大约是2年,但您可以使用collection_actionmember_action来实现路由以及自定义方法。 Refer this

答案 2 :(得分: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