1
我試圖用色器件路徑/用戶/ SIGN_OUT但它帶我到一個用戶展示頁面與ID sign_out
設計SIGN_OUT路徑不工作的Rails 4.1
Processing by UsersController#show as HTML
Parameters: {"id"=>"sign_out"}
Rendered users/show.html.haml within layouts/application (5.0ms)
Completed 500 Internal Server Error in 9ms
這是我的路線:
Rails.application.routes.draw do
devise_for :fans, controllers: { registrations: "fans/devise/registrations"}
devise_for :users, controllers: { registrations: "users/devise/registrations"}
devise_scope :fan do
get '/auth/facebook_fan/callback' => "fans/devise/omniauth_callbacks#facebook"
end
devise_scope :artist do
get '/auth/facebook_artist/callback' => "users/devise/omniauth_callbacks#facebook"
get '/users/auth/stripe_connect/callback' => "users/devise/omniauth_callbacks#stripe_connect"
end
resources :about
resources :rewards, only: :show do
resources :pledges, only: [:new, :create, :update]
end
resources :users, only: [:show, :index] do
resources :rewards, only: [:new, :create, :update, :index]
resources :pledges, only: [:show, :new, :create]
end
root "welcome#index"
end
在我的路由中我在搞什麼事?或者是別的什麼?
UsersController:
class UsersController < ApplicationController
helper_method :user
respond_to :js
def index
respond_to do |format|
format.html
format.js
end
end
protected
def User
UserPresenter.new(User.find(params[:id]))
end
end
Registrationscontroller
class Users::Devise::RegistrationsController < Devise::RegistrationsController
def update
# For Rails 4
account_update_params = devise_parameter_sanitizer.sanitize(:account_update)
# For Rails 3
# account_update_params = params[:user]
# required for settings form to submit when password is left blank
if account_update_params[:password].blank?
account_update_params.delete("password")
account_update_params.delete("password_confirmation")
end
@user = User.find(current_user.id)
if @user.update_attributes(account_update_params)
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case their password changed
sign_in @user, :bypass => true
redirect_to user_path(@user)
else
render "edit"
end
end
def new
@user = User.new
respond_to do |format|
format.html
format.js
end
end
end
登出路徑和鏈接:
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
= link_to "Sign out", destroy_user_session_path
什麼是錯誤? – kobaltz 2014-10-02 22:35:29
當我嘗試訪問'users/sign_out'時,它應該銷燬會話。相反,它將我帶到一個顯示頁面,其ID爲'sign_out' – TuxedoTomson 2014-10-02 22:38:32
有可能沒有看到控制器是您正在重定向到用戶顯示路徑。你能發佈一些控制器代碼嗎? – kobaltz 2014-10-02 22:40:20