No puedo entender por qué mis vistas de rieles no reconocen flash [: notice] o flash [: error]. Sigo recibiendo el siguiente error con respecto a la vista parcial que se está procesando. El error específico es:Rails flash [: notice] always nil
ActionView :: :: Plantilla de error (Usted tiene un objeto nulo cuando no lo esperas Uno podría esperar una instancia de matriz se produjo el error mientras que la evaluación nula []!..):
En mi controlador tengo
def index
@organisms = Organism.all
flash[:error] = "test"
flash[:notice] = "test"
respond_to do |format|
format.html
format.json { render :json => @organisms }
end
end
En mi archivo index.html.erb pagaré un parcial a través de:
<%= render "shared/flash" %>
El parcial tiene el siguiente código.
<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>
Sin embargo, si en lugar de hacer que el parcial lanzo en <% = aviso%> se rinde a cabo la notificación.
Si tomo el código parcial y lo pego en la parte superior del archivo index.html.erb se representa correctamente. Por lo tanto, supongo que estoy representando la vista parcial de forma incorrecta.
Cualquier ayuda es muy apreciada. ¡Gracias!
Te falta la parte clave: cómo se está haciendo el parcial. Además, no desarme el flash en la parte inferior. Rails ya lo hace por ti. –
Gracias por la información. Agregué cómo estoy renderizando el parcial. –
u no necesita hacer esto <% flash [: error] = flash [: errors] = flash [: notice] = nil%> –