链接到Devise中当前登录用户的个人资料

时间:2015-01-02 06:38:29

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

我正在尝试链接到设计用户个人资料

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

  root to: "welcome#index"

我的用户.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

我的链接

<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

感谢

1 个答案:

答案 0 :(得分:2)

在路由文件中调用devise_for会自动创建设计工作所需的路由。设计控制器包装在宝石内部,对您不可见。

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

Devise是一个开箱即用的解决方案,为了自定义控制器或视图,您需要将相应的文件复制到您的应用程序中。有一些命令可以轻松地让你这样做。所有这些信息(以及更多信息)都可以找到here。特别感兴趣的是“配置控制器”部分。

在开始之前阅读gem的基本文档总是很好的做法。

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