- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Javascript 框架构建 Rails 应用程序,因此 Rails 正在为后端 API 提供服务。
目前,该应用只是实现所有设计 View 和操作。
为此,Rails 应用仅接受对其 /api/
URL 的 JSON 调用,并要求 Devise 仅处理 JSON 调用,因此我将它们定义如下:
Rails.application.routes.draw do
scope :api, module: :api, constraints: { format: 'json' } do
devise_for :users, controllers: {
confirmations: 'devise/confirmations',
registrations: 'devise/registrations',
sessions: 'sessions'
}
resources :users
end
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root to: 'home#index'
get '*path', to: 'home#index'
end
解释这里发生了什么:
:users
)root
路由除帐户确认电子邮件链接外,一切正常。发送的确认电子邮件有一个包含 /api/
( http://localhost:3001/api/users/confirmation?confirmation_token=XLDVqqMZwXg6dszyV_nc ) 的链接,但应该没有(预期 URL:http://localhost:3001/users/confirmation?confirmation_token=XLDVqqMZwXg6dszyV_nc )。
我怎样才能设计出没有 /api/
部分的确认邮件(以及所有其他邮件)?
更新
深入查看设计源代码,我发现 the confirmation mailer view template正在使用 confirmation_url
Rails 命名路由,这是正确的。
在我的例子中,我需要将所有设计路由限制为 /api/
路由,并限制为 JSON 格式,除了少数路由被定义 2 次:第一次HTML 格式的 /api/
范围(将转发到我的 JavaScript 应用程序),以及 /api/
范围内的第二个路由,将由 JavaScript 调用应用程序。
示例:预期的账户创建确认执行堆栈
/users/confirmation?confirmation_token=XLDVqqMZwXg6dszyV_nc
/api/users/confirmation?confirmation_token=XLDVqqMZwXg6dszyV_nc
设计路径以确认帐户的服务最佳答案
您应该能够在初始 API 路由之后简单地添加两条额外的路由。像这样:
Rails.application.routes.draw do
scope :api, module: :api, constraints: { format: 'json' } do
devise_for :users, controllers: {
confirmations: 'devise/confirmations',
registrations: 'devise/registrations',
sessions: 'sessions'
}
resources :users
end
devise_for :users, controllers: {
confirmations: 'devise/confirmations',
registrations: 'devise/registrations'
}
root to: 'home#index'
get '*path', to: 'home#index'
end
在没有看到前端代码的情况下很难确定,但是两条路线都有。
关于ruby-on-rails - 在 Rails 范围内使用 devise_for 设计生成的邮件程序 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50226896/
安装设备并创建用户模型后。我rake db:migrate,然后rake paths。然后我得到一个错误“undefined method `devise_for' for #”。什么可能导致此错误?
我正在尝试在设计中自定义我的路线。我尝试使用 devise_scope :user,但它不起作用。所以我改为 devise_for,并跳过了自定义路由(注册、确认、密码、 session )并且它起作
我用rails generate devise用户创建了一个模型用户,然后耙db:migrate然后耙路由。一旦我做到了,我就知道我的home索引出现错误,这是一个 Action Controller
我正在开发一个使用 Rails 3 和 Devise 的现有 Web 应用程序。我目前的任务是向应用程序添加 JSON API。我创建了一个 Mobile::SessionsController (
我正在使用 Javascript 框架构建 Rails 应用程序,因此 Rails 正在为后端 API 提供服务。 目前,该应用只是实现所有设计 View 和操作。 为此,Rails 应用仅接受对其
我什么时候应该在 devise_for 中嵌套路由堵塞?请举一两个例子来说明用例。 (路线#1) 如 :foo_object与 :users 相关联所以:user has_one :foo_objec
我刚刚向 rails 应用程序添加了全新安装的设计,但它在启动服务器启动时输出警告,并且设计根本无法工作: [WARNING] You provided devise_for :users bu
我的用户模型使用 column_names 方法允许管理员在所有列上进行 mass_assignment。 class User < ActiveRecord::Base attr_accessi
我是一名优秀的程序员,十分优秀!