Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 如何访问用户详细信息?_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails 如何访问用户详细信息?

Ruby on rails 如何访问用户详细信息?,ruby-on-rails,devise,Ruby On Rails,Devise,我想访问用户详细信息designe已在用户注册时为其创建电子邮件和密码。例如,我现在希望在我的视图(页面上)中查看当前用户的地址。我的模式已添加到下面。我已经试过了,但没用 ActiveRecord::Schema.define(version: 2019_10_22_183225) do # These are extensions that must be enabled in order to support this database enable_extension "plp

我想访问用户详细信息
designe
已在用户注册时为其创建电子邮件和密码。例如,我现在希望在我的视图(页面上)中查看当前用户的地址。我的模式已添加到下面。我已经试过了,但没用

ActiveRecord::Schema.define(version: 2019_10_22_183225) do

  # These are extensions that must be enabled in order to support this database
  enable_extension "plpgsql"

  create_table "positions", force: :cascade do |t|
    t.string "tripnumber"
    t.string "activity"
    t.string "date"
    t.string "time"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "users", force: :cascade do |t|
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "barge_name"
    t.index ["email"], name: "index_users_on_email", unique: true
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
  end

end
一旦您正确设置“设计”并让用户登录,您的用户(用户的实例)应该可以通过控制器中的当前用户及其视图访问。如果
current_user
nil
,则表示该用户尚未登录


Desive工作在warden中间件之上,依靠会话对用户进行身份验证,检查是否设置了Cookie。另外,如果您刚刚添加了Desive,请重新启动服务器,以便启动中间件(并且spring通过
spring stop
,以确保)

Desive的配置似乎不正确。您应该重新检查我的应用程序控制器和路由下方的

,通常在我打开localhost:3000时显示位置/新页面,现在我被重定向到登录页面,这很好,但登录后它什么也不做

class ApplicationController < ActionController::Base
  before_action :authenticate_user!
end

routes:
Rails.application.routes.draw do
  devise_for :users

  root to: 'positions#new'

resources :positions


end
class ApplicationController
OK,所以您认为可能是因为我没有登录,例如,现在我收到此错误。nil的未定义方法“email”:NilClass Extracted source(在第4行附近):@skosman如果
当前用户
nil
的话,这正是你会遇到的错误,我想你是对的,但这让我进入下一个问题,当我登录时,页面会停留在登录页面上,它应该将我路由到的页面必须使用密码进行身份验证,当我这样做时,不会发生任何事情。。。不明白为什么