我需要访问 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 控制台中访问 current_user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52018115/