设计秀用户

时间:2014-07-28 20:28:18

标签: ruby-on-rails-4 devise user-profile

尽管到目前为止我已经阅读了所有问题和解决方案,但在此处没有任何内容可用于显示已设置的用户个人资料页面。我也在我的路线上尝试了很多东西。我的错误目前显示 - "无法找到没有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

1 个答案:

答案 0 :(得分:1)

match 'users/show', to: 'users#show', via: 'get'

此行表明它会将网址users/show路由到您的控制器#action users#show。在控制器内部,您正在寻找ID为params[:id]的用户。除此之外,您永远不会传入id参数。通常,id在url中传递(即users/show/:id)。这是导致错误的原因。

解决方案取决于您要完成的任务。您可以通过URL传递id,或者如果您希望users/show仅显示登录的用户配置文件,我会添加控制器操作(例如,称为配置文件),然后设置/获取会话变量用户ID并重定向到用户的视图。