link 到当前在 Devise 中登录的用户配置文件

link to currently logged in user's profile in Devise

我正在尝试 link 设计用户配置文件

Rails.application.routes.draw do
  devise_for :users
  #get '/users/:id', :to => 'users#show', :as => :user
  resources :users

  root to: "welcome#index"

我的User.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/avatar/:style/missing.png"
  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
end

我的Link

<li><%= link_to (image_tag current_user.avatar.url(:thumb)), user_path(current_user.id), class: "navbar-link" %></li>

我的设置与

相同

User profile pages with devise - Routing to show action

我遇到这个错误

未初始化常量 UsersController

谢谢

在路由文件中调用 devise_for 会自动创建设计工作所需的路由。 devise 的控制器打包在 gem 中,您看不到。

之后调用 resources :users 意味着 rails 将查找一个名为 UsersController 的控制器,它不是 devise 使用的控制器。您的 app/controllers 目录中没有 UsersController,这就是您收到上述错误的原因。

Devise 是一种开箱即用的解决方案,要自定义控制器或视图,您需要将适当的文件复制到您的应用程序中。有一些命令可以轻松让您这样做。所有这些信息(以及更多)都可以在 here 中找到。特别感兴趣的是 "Configuring controllers".

部分

在开始之前阅读 gem 的基本文档始终是一个好习惯。

编辑: 设计似乎不会自动为用户创建显示操作,因此需要一个单独的控制器。有关如何为用户设置查看操作的相关问题,请单击 here