我有設計和用戶控制器設計與寧靜的用戶
的routes.rb
devise_for :users
resources :users do
resources :blogs
end
users_controller.rb
class UsersController < ApplicationController
respond_to :html, :xml, :json
def create
@user = User.create(params[:user])
end
def show
@user = User.find(params[:id])
@asset = Asset.find(params[:id])
respond_with [@user, @asset]
end
def update
@user = User.find(params[:id])
@user.update_attributes(params[:user])
respond_with @user
end
end
當我訪問http://localhost:3000/users/sign_out
我得到
ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User with id=sign_out
更新:
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
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
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
任何解決方案?
您所看到的是一個路由錯誤,雖然也許您知道這一點。它看起來像試圖用Users#show action做出響應,但沒有堆棧跟蹤,我無法確定。嘗試運行'rake routes'並向我們展示處理用戶的部分,這樣我們就可以知道'users/sign_out'路由是否正在映射。 – TCopple 2012-04-27 14:57:36
我不明白如何設置優先級,我將'devise_for:users'移動到'resources:users'下面,但它沒有幫助 – 2012-04-27 15:55:14