-
20-12-2019 - |
题
尽管到目前为止我已经阅读了所有问题和解决方案,但这里没有任何内容对我有用,显示带有设计的登录用户个人资料页面。我也在我的路线中尝试了很多事情。我的错误当前显示 - “无法找到没有 ID 的用户”。我是一个设计新手,所以虽然我喜欢它,但它有点令人沮丧。任何帮助,将不胜感激。仍处于学习阶段。谢谢。
class UsersController < ApplicationController
before_filter :authenticate_user!, :except => [:show]
after_action :verify_authorized
def index
@users = User.all
authorize User
end
def show
@user = User.find(params[:id])
authorize @user
end
路线
Rails.application.routes.draw do
devise_for :users
devise_scope :user do
get 'users/sign_in' => 'devise/sessions#new'
get 'users/sign_out' => 'devise/sessions#destroy'
end
resources :user
match 'users/show', to: 'users#show', via: 'get'
root to: 'pages#home'
end
解决方案
match 'users/show', to: 'users#show', via: 'get'
这行表明它将路由 url users/show
到你的控制器#action users#show
. 。在你的控制器中,你正在寻找 id 为的用户 params[:id]
. 。例外的是,您永远不会传递 id 参数。通常,id 在 url 中传递(即 users/show/:id
)。这就是你的错误的原因。
解决方案取决于您想要实现的目标。您可以通过 url 传递 id,或者如果您想要 users/show
为了仅显示登录的用户配置文件,我将添加一个控制器操作(例如称为配置文件),然后设置/获取带有用户 ID 的会话变量并重定向到用户的视图。
不隶属于 StackOverflow