我不明白为什么我的 Rails 视图无法识别 flash[:notice] 或 flash[:error]。关于渲染的部分视图,我不断收到以下错误。具体错误是:
ActionView::Template::Error (当你没有预料到时,你得到了一个 nil 对象!
您可能期望一个 Array 的实例。
计算 nil.[] 时发生错误:
在我的控制器中我有
def index
@organisms = Organism.all
flash[:error] = "test"
flash[:notice] = "test"
respond_to do |format|
format.html
format.json { render :json => @organisms }
end
end
在我的 index.html.erb 文件中,我通过以下方式渲染了部分内容:
<%= render "shared/flash" %>
该部分有以下代码。
<div id="flashes">
<% if flash[:notice] %>
<p id="flash_notice" class="messages notice"><%= flash[:notice] %></p>
<%= javascript_tag "$('#flash_notice').effect('highlight',{},1000);" %>
<% end %>
<% if flash[:error] || flash[:errors] %>
<p id="flash_errors" class="messages errors"><%= flash[:error] || flash[:errors] %></p>
<%= javascript_tag "$('#flash_errors').effect('highlight',{},1000);" %>
<% end %>
<% flash[:error] = flash[:errors] = flash[:notice] = nil %>
</div>
但是,如果我不渲染部分内容,而是放入 ,它就会渲染出通知。
如果我获取部分代码并将其粘贴到 index.html.erb 文件的顶部,它将正确呈现。因此,我认为我错误地渲染了部分视图?
任何帮助深表感谢。谢谢!