gpt4 book ai didi

ruby-on-rails-3 - 部分中的 Flash 消息 (Rails 3)

转载 作者:行者123 更新时间:2023-12-03 10:34:23 24 4
gpt4 key购买 nike

我有一个部分,_flash.html.haml

- flash.each do |type, value|
.flash{ :class => type.to_s }
= value

我正在从 View 中使用
=render :partial => "flash"
其中提示闪存哈希为零/未定义。但是,当我这样做时:
=render :partial => "flash", :locals => {:flash => flash}
有用。

为什么部分无法访问 Flash 消息?

最佳答案

在以前的 Rails 版本(Rails 2)中,默认的局部变量会寻找一个与父部分同名的实例变量。

鉴于您的示例,因为部分名为 _flash它会自动将实例变量 flash 作为局部变量传递给局部变量。这样你就可以访问它。此行为在 2.3 中已弃用,并已在 Rails 3.0 中删除。

这意味着您必须始终将所有实例变量显式传递为 locals , 甚至 flash ,就像您在后一个示例中所写的那样。
<%= render :partial => "flash", :locals => {:flash => flash} %>
这与flash无关每说,flash是一个实例变量,就像任何其他变量一样。

关于ruby-on-rails-3 - 部分中的 Flash 消息 (Rails 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com