Rai*_*oon 3 session ruby-on-rails
我需要访问 Rails 控制台中的 current_user 属性,我安装了 pry gem,但我不知道如何使用它来登录用户
我也尝试过
user = User.find(1)
sign_in user
Run Code Online (Sandbox Code Playgroud)
在我的代码中手动登录用户,但这会返回错误
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>
Run Code Online (Sandbox Code Playgroud)
使用控制台时,“当前用户”的整个概念不适用。
与运行 Rails 服务器时不同,控制台实际上并不响应 http 请求。它只是启动框架的关键功能,以便您可以使用它。
由于没有 HTTP 请求,因此没有基于会话或令牌的身份验证。因此,没有用户实际与系统交互,这使得整个概念毫无意义。
gempry是默认 ruby 的替代控制台irb。
它可用于在代码中设置“交互式断点”,以便您可以停止服务器中的执行并检查变量。
假设你有:
class PagesController
# GET /
def home
binding.pry
end
end
Run Code Online (Sandbox Code Playgroud)
当您http://localhost:3000/使用浏览器请求时,该页面将不会加载。
如果您切换回运行 Rails 服务器的控制台,您会注意到有一个交互式提示。一旦您关闭提示(使用 exit 或 ctrl + d),响应将发送到浏览器。
gembyebug类似,但在标准 Rails 错误页面中创建交互式终端。
| 归档时间: |
|
| 查看次数: |
4447 次 |
| 最近记录: |