Ruby on Rails Wednesday, December 29, 2010

I tried address still not able to display the address form.


<% person_form.fields_for :address do |address_form| %>

thanks
Geo

On Dec 29, 8:34 am, Colin Law <clan...@googlemail.com> wrote:
> On 29 December 2010 07:52, Geo Manickam <geo...@hotmail.com> wrote:
>
>
>
>
>
>
>
>
>
> > I am new to rails, coming from .net. I am having the issue for 1:1
> > mapping nested model view the form will not render.
>
> > I have the code below. note the address object is created. I dont see
> > the label and text box. the person form render without any issue. the
> > debug works outside the fields_for.
>
> > Any help is appreciated
>
> > thanks
> > Geo
>
> > Model
> > ======
>
> > class Person < ActiveRecord::Base
> >  has_one :address
> >  accepts_nested_attributes_for :address
> > end
>
> > class Address < ActiveRecord::Base
> >  belongs_to :person
> > end
>
> > Controller
> > ========
>
> >  GET /people/new
> >  # GET /people/new.xml
> >  def new
> >    @person  = Person.new
> >    @address = @person.address = @person.build_address
>
> >    respond_to do |format|
> >      format.html # new.html.erb
> >      format.xml  { render :xml => @person }
> >    end
> >  end
>
> > View: _form.html.erb
>
> > <%= form_for(@person) do |person_form| %>
> >  <% if @person.errors.any? %>
> >    <div id="error_explanation">
> >      <h2><%= pluralize(@person.errors.count, "error") %> prohibited
> > this person from being saved:</h2>s
> >      <ul>
> >      <% @person.errors.full_messages.each do |msg| %>
> >        <li><%= msg %></li>
> >      <% end %>
> >      </ul>
> >    </div>
> >  <% end %>
> >  <div class="field">
> >    <%= person_form.label :name %><br />
> >    <%= person_form.text_field :name %>
> >  </div>
> >  <div class="field">
> >    <%= person_form.label :email %><br />
> >    <%= person_form.text_field :email %>
> >  </div>
> >  <div class="field">
> >    <%= person_form.label :phone %><br />
> >    <%= person_form.text_field :phone %>
> >  </div>
> > <h1>outside</h1>
> >  <%= debug(@person.address.attributes) %>
> >  <%= debug(@person.address) %>
> >  <% person_form.fields_for  @address  do |address_form| %>
>
> I think that should be :address not @address, it specifies the
> association to use.
>
> Colin
>
>
>
>
>
>
>
> >  <h1>inside form</h1>
> >        <div class="field">
> >            <%= address_form.label :addressline1 %><br />
> >            <%= address_form.text_field :addressline1 %>
> >          </div>
> >        <div class="field">
> >            <%= address_form.label :addressline2 %><br />
> >            <%= address_form.text_field :addressline2 %>
> >          </div>
> >  <% end %>
> >  <div class="actions">
> >    <%= person_form.submit %>
> >  </div>
> > <% end %>
>
> > --
> > 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 rubyonrails-talk@googlegroups.com.
> > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
> > For more options, visit this group athttp://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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment