You might want to try inspecting the params in the controller, add a
"raise params.inspect" into your update action.

I suspect that it is because you have not provided fields for with the
parent form, like so:

<% f.fields_for @account.owner do |i|%>

If you don't put the "f." in front, rails will simply generate params
that you can access via "params[:owner]", whereas you want something
like "params[:account][:owner]".

This is one problem, but there might be more.

On Apr 7, 6:37 am, internetchris <[email protected]>
wrote:
> Hey everyone,
>
> I need some help. I have an accounts controller, and am working with
> the show view. Each account has an "owner" and a "customer". I can
> create the accounts/owners/customers just fine, but when it comes to
> updating I can't. I have a single account view, that uses a form, and
> the "fields_for" command to update the customer and owners when I
> submit the form. The account fields update just fine, but the child
> records (owner, and customer) information does not. Here's my update
> routine in the controller. I'm pretty new so I'm sure it's something
> simple I'm missing.
>
> *******account_controller
>
> def update
>
>   @account = Account.find(params[:id])
>     if @account.update_attributes(params[:account])
>       flash[:notice] = 'Account Record Saved'
>        redirect_to(:action=>'show')
>     else
> flash[:warning] = 'Account Record Did Not Save!'
>      redirect_to(:action=>'show')
>     end
>
>   end
>
> *******account_"show"_view
>
> <% form_for(:account, @account, :url => {:action => 'update'}, :html
> => { :multipart => true, :method => :put  }) do |f|  %>
>
> <!-- Property Information -->
> <h4>Property Information:</h4>
> <div id="top_background1"><strong>Property No:</strong><br>
> <%=f.text_field :s_account_no, :size => '10'%> </div>
> <br>
>
> <!--Customer Information-->
>
>  <div id="Customer_info">
>
> <h4>Customer Information</h4>
>   <%fields_for @account.customer do |customer_fields|%>
> <br>
> <div style='padding-left:30px;margin-top:-12px;'>Name:        <
> %=customer_fields.text_field :name, :size => '48'%></div><br>
> <div style='padding-left:30px;margin-top:-12px;'>Address:        <
> %=customer_fields.text_field :address, :size => '48'%></div><br>
> <div style='padding-left:0px;margin-top:-15px;'>City/State/Zip: <
> %=customer_fields.text_field :city, :size => '28'%>,<
> %=customer_fields.text_field :state, :size => '2', :maxlength => '2'%>
> <%=customer_fields.text_field :zip, :size => '5', :maxlength => '5'%></
> div>
> <div style="padding-left:425px"> </div>
>
> <%end%>
>
>   </div>
> <br>
> <br>
>  <!--Owner Information-->
>
>  <div id="Owner_info">
>
> <h4>Owner Information</h4>
>   <%fields_for @account.owner do |i|%>
> <br>
> <div style='padding-left:30px;margin-top:-12px;'>Name:        <
> %=i.text_field :name, :size => '48'%></div><br>
> <div style='padding-left:30px;margin-top:-12px;'>Address:        <
> %=i.text_field :address, :size => '48'%></div><br>
> <div style='padding-left:0px;margin-top:-15px;'>City/State/Zip: <
> %=i.text_field :city, :size => '28'%>,<%=i.text_field :state, :size =>
> '2', :maxlength => '2'%> <%=i.text_field :zip, :size =>
> '5', :maxlength => '5'%></div>
> <div style="padding-left:425px"> </div>
>
> <%end%>
>
>   </div>
>
> <%= submit_tag "Update Account" %>
> <%end%>
>
> Let me know if you need more info. I'm hoping I missed something easy.
>
> Chris
--~--~---------~--~----~------------~-------~--~----~
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