Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 当前用户在登录Rails 4.2后显示为零_Ruby On Rails_Devise_Ruby On Rails 4.2 - Fatal编程技术网

Ruby on rails 当前用户在登录Rails 4.2后显示为零

Ruby on rails 当前用户在登录Rails 4.2后显示为零,ruby-on-rails,devise,ruby-on-rails-4.2,Ruby On Rails,Devise,Ruby On Rails 4.2,我想在我的家庭控制器中使用Desive的访问器方法获取当前登录的用户对象。但不幸的是,我无法访问当前的_用户,请任何人在此帮助我。请在这里检查我的型号和控制器 user.rb class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :confirmable, :recoverable, :rememberable, :trackable, :validatable

我想在我的家庭控制器中使用Desive的访问器方法获取当前登录的用户对象。但不幸的是,我无法访问当前的_用户,请任何人在此帮助我。请在这里检查我的型号和控制器

user.rb

class User < ActiveRecord::Base

  devise :database_authenticatable, :registerable, :confirmable,
     :recoverable, :rememberable, :trackable, :validatable

  validates :name, :subdomain, :presence => true
  validates :email, :subdomain, :uniqueness => true

  has_one :page, :dependent => :destroy

  def self.select_user_for_page(user)
    if user
      user.user_id ? User.find(user.user_id) : user
    end
  end
end
class用户true
验证:电子邮件,:子域,:唯一性=>true
有一个:page,:dependent=>:destroy
定义自我。为页面(用户)选择用户
如果用户
user.user\u id?User.find(User.User\u id):用户
结束
结束
结束
home_controller.rb

class HomeController < ApplicationController

  def index
    @page = User.select_user_for_page(current_user).try(:page)
    render :layout => "edit"
  end
end
class HomeController“编辑”
结束
结束

添加
authenticate\u用户
方法如前所述:

class HomeController < ApplicationController
    before_action :authenticate_user!

...
end
class HomeController

并检查当前用户。

在执行操作之前使用
后,当前用户仍然为零。

验证用户
然后在控制器操作中添加
binding.pry
,并检查当前用户
[1]pry(#)>当前用户缓存(0.0ms)从“用户”中选择“用户”。`id`为空限制1=>nil
仍为零表中是否有用户?添加application.rb config.action\u controller.perform\u caching=false