我希望用戶擁有自己的頁面/ users/52。所以我確實添加了一個新的控制器來實現這一點,控制器是user_controller.rb。 但是現在,其他功能不起作用。Devise - ActiveRecord :: RecordNotFound
當我有像下面的路線。/users/sign_in不起作用。 但/用戶/ 1確實工作。
#Users/show!!!
match 'users/:id' => 'users#show', via: :get
# or
get 'users/:id' => 'users#show'
# or
resources :users
devise_for :users, controllers: {
sessions: 'users/sessions'
}
當我使用的路線如下圖所示。/users/1不工作,但用戶/登錄工作。
devise_for :users, controllers: {
sessions: 'users/sessions'
}
class UsersController < ApplicationController
#def show
# \t @user = User.friendly.find(params[:id])
# \t @links = Link.all.where(user_id: @user).publish
#end
def index
\t @users = User.all
end
def show
\t @user = User.friendly.find(params[:id])
\t @links = Link.all.where(user_id: @user).publish
end
def new
\t
end
end
沒有創造您嘗試登入的用戶,該錯誤意味着自己是不是在數據庫中找到(最有可能的用戶) – bjhaid
用戶創建。因爲我可以登錄到網站,如果我刪除這些行:match'users /:id'=>'users#show',via :: get #or get'users /:id'=>'users#show' #或 資源:用戶 – VictorBlomberg
你有沒有嘗試'資源:用戶,只:[:show]'?恐怕其他選項將不起作用,因爲devise操作將被解釋爲一個ID(即在'/ users/sign_in'中,new將作爲'id:'sign_in''傳遞給您的UsersController)。另外,除非將'resources'限制爲':show',否則它可能會掩蓋設備的路由。 – taglia