when your validation fails you're calling "new" again. you should create
something called "validate"

the path created does not provide desired results. Create a different path.

On 4 April 2012 15:51, Linus Pettersson <[email protected]> wrote:

> I don't quite understand what you mean.
>
> Do you understand my problem?
>
> When the user enters the information into the form correctly and it
> validates everything works great. However, if it is not correctly filled
> out the "new" action will get re-rendered and displaying the form errors.
> The issue is that instead of showing 2 Participant "fields groups" it now
> displays 4, using the code above.
>
>
>
> Den onsdagen den 4:e april 2012 kl. 20:55:43 UTC+2 skrev Charles:
>>
>> is there a way to check if the participant field is already created
>> before creating it?
>>
>> Is_A and Has_A relationships. Describe the relationship between the forms
>>
>>
>> On 4 April 2012 14:42, Linus Pettersson <> wrote:
>>
>>> Hi!
>>>
>>> I have created a nested form and now I want to make it dynamic. I have
>>> two models, "Applications" and "Participants". Each application may have
>>> several participants, but at least one which is the contact person. An
>>> issue that I have is that when the form is not validated it renders the
>>> participants fields twice.
>>>
>>> - How can I avoid that?
>>>
>>> # Applications/new.html.erb
>>> <div class="row span8 offset2 form-wrapper">
>>> <h1>Ny anmälan</h1>
>>>
>>> <%= semantic_form_for @application, :html => { :class =>
>>> "form-horizontal" } do |f| %>
>>> <%= f.semantic_errors %>
>>>  <%= f.inputs do %>
>>> <%= f.inputs :for => :participants, :name => "Kontaktperson", :class =>
>>> "participants_form well" do |p| %>
>>>  <%= p.input :name, :label => "Namn", :required => true %>
>>> <%= p.input :address, :label => "Adress", :required => true %>
>>>  <%= p.input :phone, :label => "Mobiltelefon", :required => true %>
>>> <%= p.input :email, :label => "Epostadress", :as => :email, :required =>
>>> true %>
>>>  <%= p.input :age, :label => "Ålder" %>
>>> <%= p.input :has_something, :label => "Ja..." %>
>>>  <%= p.input :special_food, :label => "Annan specialkost" %>
>>> <%= p.input :is_contact, :as => :hidden, :value => true %>
>>>  <% end %>
>>>
>>> <%= f.inputs :class => "participants_fields" do %>
>>> <%= render "participant_form", :f => f %>
>>>  <% end %>
>>> <%= link_to "<i class=\"icon-plus-sign\"> </i> Lägg till fler
>>> deltagare...".html_safe, "#", :class => "btn pull-right" %>
>>>
>>> <%= f.inputs :name => "Övrig information" do %>
>>> <%= f.input :extra_information, :input_html => { :class => "span4",
>>> :rows => 3 } %>
>>>  <%= f.input :membership_paid, :label => "JA" %>
>>> <% end %>
>>> <% end %>
>>>
>>> <%= f.buttons do %>
>>> <%= f.submit :value => "Skicka anmälan", :class => "btn btn-primary
>>> btn-large commit create" %>
>>>  <% end %>
>>> <% end %>
>>> </div>
>>>
>>> # Applications Controller
>>>  def new
>>> @application = Application.new
>>> @application.participants.**build
>>>  respond_to do |format|
>>> format.html
>>> format.js { render :nothing }
>>>  end
>>> end
>>>
>>> def create
>>> @application = Application.new(params[:**application])
>>>
>>> if @application.save
>>> flash[:notice] = "Din anmälan har skickats!"
>>> redirect_to root_path
>>>  else
>>> flash[:error] = "Det gick inte att spara din anmälan"
>>> render :action => "new"
>>>  end
>>> end
>>>
>>>
>>> I guess that my participants gets built again when it renders the new
>>> action in the "create" method. But how can I avoid that?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ruby on Rails: Talk" group.
>>> To view this discussion on the web visit https://groups.google.com/d/**
>>> msg/rubyonrails-talk/-/**ihqbWCmIL0YJ<https://groups.google.com/d/msg/rubyonrails-talk/-/ihqbWCmIL0YJ>
>>> .
>>> To post to this group, send email to 
>>> rubyonrails-talk@googlegroups.**com<[email protected]>
>>> .
>>> To unsubscribe from this group, send email to
>>> rubyonrails-talk+unsubscribe@**googlegroups.com<rubyonrails-talk%[email protected]>
>>> .
>>> For more options, visit this group at http://groups.google.com/**
>>> group/rubyonrails-talk?hl=en<http://groups.google.com/group/rubyonrails-talk?hl=en>
>>> .
>>>
>>
>>
>>
>>
>>   --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rubyonrails-talk/-/fl-g8AYGOXMJ.
>
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to