ruby-on-rails - 在 Rails 控制台中访问 c​​urrent_user

标签 ruby-on-rails session

我需要访问 rails 控制台中的 current_user 属性,我安装了 pry gem,但我不知道如何使用它来登录用户

我也试过

user = User.find(1)
sign_in user

在我的代码中手动登录用户,但这会返回错误

Module::DelegationError: ActionController::Metal#session delegated to @_request.session, but @_request is nil: #<ResumesController:0x0055be48209b10 @_action_has_layout=true, @_routes=nil, @_request=nil, @_response=nil>

最佳答案

“当前用户”的整个概念在使用控制台时并不适用。

与运行 Rails 服务器时不同的是,控制台实际上并不响应 http 请求。它只是启动框架的关键 rails ,以便您可以使用它。

由于没有 HTTP 请求,因此没有基于 session 或 token 的身份验证。因此,没有用户实际与系统交互,这使得整个概念没有实际意义。

pry 动

pry gem 是默认 ruby​​ irb 的替代控制台。

它可用于在代码中设置“交互式断点”,以便您可以暂停服务器中的执行并检查变量。

假设您有:

class PagesController
  # GET /
  def home
    binding.pry
  end
end

当您使用浏览器请求 http://localhost:3000/ 时,页面将不会加载。

如果您切换回运行 rails 服务器的控制台,您会注意到有一个交互式提示。关闭提示后(使用 exit 或 ctrl + d),响应将发送到浏览器。

byebug gem 类似,但在标准 Rails 错误页面中创建了一个交互式终端。

关于ruby-on-rails - 在 Rails 控制台中访问 c​​urrent_user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52018115/

相关文章:

java - 在桌面应用程序 : in which layer? 中管理登录 session

ruby-on-rails - Factory Girl创建的对象在两次测试之间无法清除?

php - 是否可以直接使用 ajax 发送 php session 变量?

sql - 如何在散列中搜索 key

sql - 从 rails 环境中的表中查询不同组中具有最大 id 的所有记录

c# - 如何使用转发器显示 session 中的成员?

php:基于 cookie 的 session

php - 在根域 (www) 上启动一个 php $_SESSION 并跨子域共享 session

javascript - 如何防止发送 ajax 调用两次

javascript - 我可以将一个 javascript 请求重定向到另一个 javascript 操作吗?