2009/11/25 Leonardo Gallucci <[email protected]>:
> Tengo otra duda respecto de esto, aunque la pregunta inicial era estricta de
> Ruby, salió el tema Rails que me pareció muy interesante, aquí viene:
>
> En un controller tenemos el tipico:
> class UsersController < ApplicationController
>    def index
>     @usuarios = User.all
>   end
>
> Luego la vista, digamos index.html.erb
> Donde se puede acceder a @usuarios
> <% @usuarios.each do |amiguito| %>
> ... etc ...
>
> La pregunta:
> ¿Como es posible que pueda acceder a @usuarios desde la vista si @ es para
> variables privadas de la clase? (en este caso la clase sería heredada de
> ApplicationController mientras que la vista es otro objeto que supongo
> hereda de ActionView::Base)

Respuesta corta: porque rails es una mierda.

Respuesta menos corta: porque rails es una verdadera mierda.

Respuesta que vale algo: básicamente, lo que rails hace es, al
instanciar el objeto ActionView::Base donde va a cargar los datos de
la vista, es iterar por todas las variables de instancia del
controller, filtrar las que son internas a la implementación de los
controllers, y meterlas en la vista. De esa forma, tu template ERB (o
lo que sea) tiene los valores de las ivars copiados.

> s2
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a