Slides de Railsconf Europe 2007

Certains sont disponibles :

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Bonjour à tous,
J’aimerais vous soumettre un problème qui est sans doute trivial, mais
que je n’arrive pas à résoudre proprement.
Voila mon code coté vue :

<% css_form_for :dossier, @dossier, :url => dossier_path(@dossier),
:html => {:method => :put} do |f| %>
<%= f.select :parent, parents %>
<%= observe_field “dossier_parent”,
:update => “children_panel”,
:url => {:action => :populate_children},
:with => “‘parent_id=’ +
encodeURIComponent(value)” %>


<%= f.checkbox_list :child_ids, @dossier.children,
children %>

<% end %>

Sur un changement de valeur pour la liste déroulante, un appel ajax est
fait au controlleur qui doit réafficher la liste des checkbox.
Dans cette méthode, populate_children, j’ai pensé à ce code :

render :locals => {:f => ?},
       :inline => "<%= f.checkbox_list :child_ids,

@dossier.children, children("+params(:parent_id)+" %>

Je pourrais aussi jouer sur du partial, mais le probleme reste le meme,
comment obtenir cette référence à :f, cad à l’instance de mon form
builder ? Suis-je obligé d’en recréer une ?
Merci de votre attention.
Richard

Etant donné que tu ne peux pas balader les instances de tes objets sur
le web (entre une page web et ton serveur via AJAX par exemple), tu
vas être obligé d’en recréer une. Avec fields_for par exemple.

++

yk

Le 20/09/07, Richard HALLIER[email protected] a écrit :

Merci pour ta réponse Yann, mais je me demande quoi mettre dans les
paramètres du constructeur qui doit remplir ces critères d’init :

  •  def initialize(object_name, object, template, options, proc)
    
render :locals => {:f => CssFormBuilder.new(:dossier, @dossier, ?, 

?, ?},
:inline => "<%= f.checkbox_list :child_ids,

Richard

Yann KLIS a écrit :

Le fields_for, tu l’utilises dans ta vue. Ou dans ton cas dans ton
rendu “inline”. Il n’y a pas d’objet à passer en local. Il faut que tu
recrées complètement l’appel à fields_for, comme tu l’as fait pour ton
form_for de ta vue.

++

yk

Le 20/09/07, Richard HALLIER[email protected] a écrit :

Banco. Merci.

Yann KLIS a écrit :