Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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 正在尝试使用Rails会话闪存,但没有收到任何错误。[]是吗?_Ruby On Rails - Fatal编程技术网

Ruby on rails 正在尝试使用Rails会话闪存,但没有收到任何错误。[]是吗?

Ruby on rails 正在尝试使用Rails会话闪存,但没有收到任何错误。[]是吗?,ruby-on-rails,Ruby On Rails,我一定错过了什么。我绝对不会在任何地方覆盖它。这里的关键是,您正在尝试访问分部中的闪存。您将需要在渲染方法中执行以下操作,以将flash哈希传递到分部: You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.[] 编辑: 更简单的解决方案:将您的部分重命名为除flash之外的任何

我一定错过了什么。我绝对不会在任何地方覆盖它。

这里的关键是,您正在尝试访问分部中的闪存。您将需要在渲染方法中执行以下操作,以将flash哈希传递到分部:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]

编辑:

更简单的解决方案:将您的部分重命名为除flash之外的任何内容。

因为您的部分被称为flash,所以发生了以下情况:

每个分部还有一个与分部同名的局部变量(减去下划线)。可以通过:object选项将对象传递到此局部变量:

flash对象正被使用分部名称创建的局部变量覆盖

为了澄清这一点,假设您有一个注释模型,并在部分中呈现注释,您可以执行以下操作:

render YOUR_PARTIAL, :flash => flash
现在用flash替换customer这个词,你就会明白为什么这是一个问题


这个功能通常是方便的,这就是问题的原因。

我以为我的分区可以访问视图帮助程序?我所有的申请助手都是。我会试一试的,谢谢。事实上,在读了那个链接之后,你的部分不是叫做_flash,是吗?如果是这样的话,将其重命名为其他名称,看看是否有效。这肯定会修复它。我想我不太明白flash是从哪里来的。从中间件的角度看,它是一种基于请求的方法。我假设它是作为视图助手公开的,因为视图可以访问它:)啊,让我尝试重命名部分,你是对的,我的部分称为“flash”,但它用于字符串上下文:
render“shared/flash”
。重命名部分帮助。世界跆拳道联盟。不管怎样,谢谢你,我现在可以继续了(尽管搔头了:)
render YOUR_PARTIAL, :flash => flash
#_comment.html.erb
<h1>comment.user.name</h1>
<p>comment.body</p>
render @customer