Ruby on rails NoMethodError-未定义的方法“键”和#x27;对于#<;ActionDispatch::Request::Session::Options:0x00007fe03ee04608>;:

Ruby on rails NoMethodError-未定义的方法“键”和#x27;对于#<;ActionDispatch::Request::Session::Options:0x00007fe03ee04608>;:,ruby-on-rails,software-distribution,Ruby On Rails,Software Distribution,当我使用rails s启动服务器时,我得到以下错误 钥匙?按照约定,将返回布尔值。因此,您的块是一个无操作,因为没有对结果执行任何操作。你想做什么?在你的例子中,选项是一个动作分派::请求::会话::选项对象,而不是一个散列。您可以调用.to_hash将其转换为散列 您可以使用slice来提取相关的键/值,而不是当前的方法: REDIS\u SET\u选项=%i(ex-px-nx-xx-keeptl)。冻结 def设置(键、值、选项=nil) 返回super(键、值),除非有选项 super(键

当我使用
rails s
启动服务器时,我得到以下错误


钥匙?按照约定,将返回布尔值。因此,您的块是一个无操作,因为没有对结果执行任何操作。你想做什么?

在你的例子中,
选项
是一个
动作分派::请求::会话::选项
对象,而不是一个
散列
。您可以调用
.to_hash
将其转换为
散列

您可以使用
slice
来提取相关的键/值,而不是当前的方法:

REDIS\u SET\u选项=%i(ex-px-nx-xx-keeptl)。冻结
def设置(键、值、选项=nil)
返回super(键、值),除非有选项
super(键、值、选项.to_hash.slice(*REDIS_SET_options))
结束

看起来像
键?
不是可以在该对象上调用的方法。您可能希望将其更改为哈希。请尝试
options.to_h.key?(k)
请在您的问题中发布实际的代码片段,而不是代码图像。当试图复制某人的示例时,图像无法搜索,并且很难剪切和粘贴。对不起,我在回答中完全忽略了你发布的代码不是你的(这是漫长的一天)。看起来您如何配置redis缓存可能存在问题。您是否可以编辑您的问题,使其包含配置会话存储的初始值设定项?