Ruby on rails 当前用户在登录Rails 4.2后显示为零
我想在我的家庭控制器中使用Desive的访问器方法获取当前登录的用户对象。但不幸的是,我无法访问当前的_用户,请任何人在此帮助我。请在这里检查我的型号和控制器 user.rbRuby 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
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