Le 27 avril 2011 12:23, olivi morel <[email protected]> a écrit :
> excusé moi si je ne comprend pas très bien tout ce que vous venez à me dire,
> je ne suis pas developpeur mais admin réseaux :) .

Imagine qu'un binding c'est un serveur DNS avec des records (les variables).
Chaque objet ruby a son propre serveur DNS. Donc  "@search.local." ne
résoudra pas pareil selon le contexte. En particulier une vue arrivera
à résoudre et pas la seconde. Il faut dire à la seconde vue d'utiliser
le premier DNS (i.e. le binding).

Un controller passe son binding à sa vue sans que tu lui demandes de
le faire (donc ça parait magique d'avoir les mêmes variables dans le
controlleur et dans la vue).  Mais quand tu "render" une vue dans une
vue, à toi de passer explicitement ces variables (avec les risques de
collisions de noms que ça implique).
Je ne sais juste pas comment on fait en Rails moderne et les posts des
autres personnes donnent des exemples, je sais juste que le système de
template ERB le fait en passant un objet "binding".

--Lucas

> jai donc mon controller items_controller.rb ou à l'intérieure il y a ma
> méthode  search
>
> def search
>
>           @search = Item.search(params[:search])
>           @items = @search.all
>      end
>
> dans la vue de items j'essaye d'appeler la vue de "_search" comme ceci
>
> <div id ='right'>
>            <%= render :partial => 'search', :locals => { :search => @items}
> %>
>  </div>
>
> gdurelle  quand tu me dis que  les variables d'instances de mon controller
> search
> soient aussi instanciées par le controller items
>
> je ne voie pas très bien, a vrai dire meme pas du tt comment les instanciers
> j ai essayé un truc mais cela n'a pas  marchcé :(
>
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à