2012-07-06 13 views
11

Acabo de actualizar mi sitio Rails de Rails 2 a Rails 3.2.¿Por qué `layout nil` no funciona?

En mi antiguo controlador que tenían:

class Foo::BarController < ApplicationController 
    layout nil 
    ... 
end 

Sin embargo, ahora que he actualizado a Rails 3 parece que necesito para cambiar eso a:

layout false 

La documentación sobre Rails Guides reclamaciones que layout nil debe funciona bien:

Las declaraciones de diseño caen en cascada hacia abajo en el jerar chy ...

clase OldPostsController < SpecialPostsController
diseño nula

He los siguientes gemas relevantes en mi GEM Gemfile.lock

actionpack (3.2.6) 
    activemodel (= 3.2.6) 
    activesupport (= 3.2.6) 
    builder (~> 3.0.0) 
    erubis (~> 2.7.0) 
builder (3.0.0) 
erubis (2.7.0) 
haml (3.1.6) 

jquery-rails (2.0.2) 
    railties (>= 3.2.0, < 5.0) 

Es esto un cambio documentado en algún lugar, o es un mono gema relacionado parchear algo?

+0

porque an == se cambió a an ===? –

+0

posiblemente ... ¿pero dónde? –

Respuesta

20

The API lo explica de esta manera:

Si el diseño especificado es:

  • una cadena: la cadena es el nombre de la plantilla
  • un símbolo: llamar al método especificado por el símbolo, el cual devolverá el nombre de la plantilla
  • false: no hay ninguna disposición
  • true: plantear una ArgumentError
  • nil: fuerza comportamiento de diseño por defecto con la herencia

Así que el significado de nil cambió de ninguna disposición a "comportamiento diseño predeterminado fuerza con la herencia". Parece que la explicación en Rails Guides es incorrecta.

+5

jeez ... esta actualización de los rieles 3 es el regalo que no deja de tomar –

+0

Sospecho que es este cambio https://github.com/rails/rails/commit/5ad52152117ecda1166359c499bcd03ae6be3365 twitear josevalim –

+0

Sí, parece que ese es el . Buena suerte con su actualización ;-) – Mischa

Cuestiones relacionadas