Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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继承的Ressource覆盖不';不能使用多个名称空间?_Ruby On Rails_Activeadmin_Inherited Resources - Fatal编程技术网

Ruby on rails ActiveAdmin继承的Ressource覆盖不';不能使用多个名称空间?

Ruby on rails ActiveAdmin继承的Ressource覆盖不';不能使用多个名称空间?,ruby-on-rails,activeadmin,inherited-resources,Ruby On Rails,Activeadmin,Inherited Resources,我使用的ActiveAdmin没有默认名称空间(config.default\u namespace=false)。我有一个不带命名空间的User资源,以及:admin命名空间中的User资源。两者都使用自定义更新方法来实现不同的行为(用户可以更改自己的数据,而管理员可以重置任何用户的密码) 这是“默认”用户: 这是管理员用户: ActiveAdmin.register User, namespace: :admin do actions :all menu permit_param

我使用的ActiveAdmin没有默认名称空间(
config.default\u namespace=false
)。我有一个不带命名空间的
User
资源,以及
:admin
命名空间中的
User
资源。两者都使用自定义更新方法来实现不同的行为(用户可以更改自己的数据,而管理员可以重置任何用户的密码)

这是“默认”用户:

这是管理员用户:

ActiveAdmin.register User, namespace: :admin do
  actions :all
  menu
  permit_params ...

  controller do
    def create
      # invitation code
      ...
    end

    def update
      # password reset code
      ...
    end
  end

  index do
    ...
  end

  filter ...

  form partial: 'form'
end
更改用户数据可以很好地工作,也可以邀请新用户。问题是密码重置。在提交相应的表单(路由
/admin/users/[id]/edit
)时,将调用非命名空间用户的
更新
(与提交
/users/[id]/edit
时相同),而不是在my
:admin
命名空间用户资源中进行更新


这是一个bug还是我误解了什么?老实说,我被这种行为难住了,我甚至不知道如何继续调试它。

问题不在于名称空间,而在于我的表单。。。
我正在为使用
语义表单,它会根据模型自动配置所有内容。由于它接收到一个
用户
,表单操作将始终将数据发送到默认的
用户
路由,而不是
:admin
路由。手动设置url修复了问题。

问题不是由于名称空间,而是因为我的表单。。。 我正在为
使用
语义表单,它会根据模型自动配置所有内容。由于它接收到一个
用户
,表单操作将始终将数据发送到默认的
用户
路由,而不是
:admin
路由。手动设置url修复了该问题

ActiveAdmin.register User, namespace: :admin do
  actions :all
  menu
  permit_params ...

  controller do
    def create
      # invitation code
      ...
    end

    def update
      # password reset code
      ...
    end
  end

  index do
    ...
  end

  filter ...

  form partial: 'form'
end