【发布时间】:2018-02-16 08:03:36
【问题描述】:
我在退出应用程序时收到以下错误。只有在我的应用程序中添加导入概念后才会发现此错误。
我的 routes.rb 文件:
Rails.application.routes.draw do
devise_for :users
resources :userdetails do
collection {post :import}
end
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
root to: "userdetails#index"
devise_scope :users do
get 'sign_in', to: 'devise/sessions#new'
get 'sign_out', to: 'devise/sessions#destroy'
end
end
控制器文件:
class UserdetailsController < ApplicationController
# before_action :set_userdetail, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!
# GET /userdetails
# GET /userdetails.json
def import
Userdetail.import(params[:file])
redirect_to root_url, notice: "Data imported"
end
路线:
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
这是我的错误:
未知操作找不到路径“/sign_out”的设计映射。 这可能有两个原因:1)你忘了包装你的路线 在范围块内。例如: devise_scope :user do get "/some/route" => "some_devise_controller" end 2) 你正在测试一个 设计绕过路由器的控制器。如果是这样,你可以明确告诉 设计要使用的映射:@request.env["devise.mapping"] = Devise.mappings[:user]
【问题讨论】:
标签: ruby-on-rails