Jean-François Trân wrote:
> Raph indiscret :
>> Ouai je vois. Normal. En fait pour tout dire je fait ce projet pour mon
>> boulot et j'ai chang� les noms pour les mettre en fran�ais
>> premi�rement et pour ne pas d�voiler d'informations
>> confidentielles.
>> Je vais m'appliquer cette fois ci en copiant le code et en
>> changeant les noms:
> 
>> <p><label for="profil_email"><B>Email</B></label><br/>
>>   <TD><input type='text' name='email_0' size="30" %>'/></TD>
> 
> Cette ligne a un probl�me. J'ai pas compris tout de suite, mais il manque
> un <%= en fait.
> 
> [...]
>>
>> <div id="extra_emails">
>>   <% render  :partial => "ajout_emails" %>
>> </div>
> 
> Il manque un = (� moins qu'il ne rel�ve d'informations
> confidentielles).
> 
> [...]
>>     for i in 0..nombre_emails
>>       @profile.source<<Source.new(:email=>params['email_'+i.to_s])
> 
> Je ne comprends toujours pas cette ligne. On a Profile
> has_many :sources ? Il est o� le s ?
> 
>     -- Jean-Fran�ois.
> 
> --
> Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org 
> )

Enfin j'ai compris ton histoire de 's' pour source.
et il aurait fallut un = dans le <% render... %> pour afficher le truc 
ouai mais en fait je ne veux pas afficher le champ d'un nouvel email 
directement donc c'etait une erreur qui m'arrangeait, Donc je pense que 
ca ne sert a rien de laisser le render dans new.rhtml. Et puis le '%>' 
était un résidu de value, la valeur par défaut que j'ai rétiré.
Donc troisième essais (merci pour ta patience):

Dans new.rhtml:
<p><label for="nom"><B>Nom</B></label><br/>
  <%= text_field 'profil', 'nom' %>
</p>

<p><label for="num_telephone"><B>Numéro de Téléphone</B></label><br/>
  <%= text_area 'profil', 'telephone' %>
</p>

<p><label for="profil_email"><B>Email</B></label><br/>
  <TD><input type='text' name='email_0' size="30"></TD>
  <TD><%=link_to_remote(  "Ajouter une adresse email",
        :update=>"extra_emails",
        :url=>{:action=>"ajout_emails"},
        :position => "before")
      %>
  </TD>
</p>

<div id="extra_emails"></div>

Dans le controller:
  def ajout_emails
    session[:nombre_emails] =
         session[:nombre_emails]? session[:nombre_emails]+1 : 1
    @nombre_emails=session[:nombre_emails]
    render  :partial => "ajout_emails"
  end

  def new
    session[:nombre_emails]=nil
  end

  def create
    @profile = Profile.new(:title=>params[:profile][:nom],
                           :description=>params[:profile][:telephone]
    )
    nombre_emails = session[:nombre_emails]?
         session[:nombre_emails].to_i : 0
    0.upto(nombre_emails) do |i|
      @profile.sources<<Source.new(:email=>params['email_'+i.to_s])
    end
    if @profile.save
      flash[:notice] = 'Profile sauvé.'
      redirect_to :action => 'menu'
    else
      session[:nombre_emails]=0
      render :action => 'new'
    end
  end

dans _ajout_email.rhtml:
<p>
  <TD><input type='text' name='email_<%= @nombre_emails %>' 
size="30"></TD>
  <TD><%=link_to_remote( "Ajouter une adresse email",
                         :update=>"extra_emails",
                         :url=>{:action=>"ajout_emails"},
                         :position => "before")
      %>
  </TD>
</p>
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
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 à