ruby-on-rails - 自定义设计资源名称

标签 ruby-on-rails devise

我正在使用 Devise 进行身份验证。

我在 Api 命名空间中有一个自定义注册 Controller ,定义如下:

class Api::RegistrationsController < Devise::RegistrationsController
  # ...
end

我的用户模型在 Api 命名空间之外定义如下:

class User < ActiveRecord::Base
  # ...
end

在我的功能测试中,我在我的设置中添加了以下行,以便 Devise 知道我们使用的是 user 而不是 api_user:

@request.env["devise.mapping"] = Devise.mappings[:user]

它在我的测试中效果很好,但我不知道如何在现实世界中复制这种行为。

sign_up_params 方法在清理时查找 params['api_user'] 而不是 params['user']

知道我该怎么做吗?

最佳答案

我不认为你仍然需要解决方案,但我遇到了同样的问题并解决了它:

代替

namespace :api do 
  devise_for :users
end

在您的 config/routes.rb 文件中,只需输入:

scope :api, module: :api do 
  devise_for :users
end

希望它能帮助其他人:D

关于ruby-on-rails - 自定义设计资源名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22220826/

相关文章:

ruby-on-rails - 有没有一种轻量级的方法来锁定哈希上的一组 key ?

ruby-on-rails-3 - 设计允许电子邮件在范围内唯一性

ruby-on-rails - 使用不带 gem 的 devise,我可以简单地复制文件吗?

ruby-on-rails - Rails、Devise、Validatable 不起作用?

ruby-on-rails - Ajax 发布点击 Action ,无需使用 CanCan 和 Devise 进行身份验证

ruby-on-rails-3 - 如果从 Facebook 注销,则设计强制注销

ruby-on-rails - ActiveAdmin Rails 编辑/删除

ruby-on-rails - 我的服务器是否应该与登录页面位于不同的域中?

ruby-on-rails - 错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有/Library/Ruby/Gems/2.6.0 目录的写权限

ruby-on-rails - 电子邮件打开通知-Ruby on Rails