Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails activeadmin操作的自定义路由?_Ruby On Rails_Activeadmin - Fatal编程技术网

Ruby on rails activeadmin操作的自定义路由?

Ruby on rails activeadmin操作的自定义路由?,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我正在用activeadmin创建一个页面来更新当前用户的密码。我有一个非持久化模型来检查密码验证等。我的问题是当我尝试时 ActiveAdmin.register UpdatePassword do actions :edit, :update end 它创建路由/update_passwords/:id和/update_passwords/:id/edit 我想通过get和put将这些路由更改为/更新_密码 有什么方法可以改变这一点吗?我找不到使用activeadmin的方法,但手

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

ActiveAdmin.register UpdatePassword do
    actions :edit, :update
end
它创建路由/update_passwords/:id和/update_passwords/:id/edit

我想通过get和put将这些路由更改为/更新_密码


有什么方法可以改变这一点吗?

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

在我看来,控制器名称UpdatePassword令人困惑

路径最终类似于:

edit_admin_update_passwords_path
update_admin_update_passwords_path
我认为这样会更好:

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


虽然这个问题已经存在了2年左右,但是您可以使用
collection\u action
member\u action
实现路由以及定制方法

文档没有说明如何在显示页面上设置约束。比方说,通常情况下,资源是通过id查看的。现在,我希望能够通过他的电子邮件查看,所以我需要施加更多约束。如何做到这一点?
ActiveAdmin.register User do
  actions :edit, :update
end