Forum: Ruby on Rails Nested Attributes in Rails 3

Posted by Avi (Guest)
on 2012-11-21 05:33
(Received via mailing list)
Hello All,

I am stuck in nested attributes:-
here is my code :-

User.rb :-
has_one :address
accepts_nested_attributes_for :address

Address.rb :-

belongs_to :user

_form.html.erb:-

<%= simple_form_for @user ,:validate => true do |f| %>
           <%= f.fields_for :address do |d| %>
          <%= d.input :first_name %>
          <%= d.input :last_name %>
          <% end %>
          <%= f.input :email %>
 <% end %>

in user_controller.rb:-
In new as well as create method I tried with:-
@user = User.new
@user.build_profile

But still I am getting the error as :-

Can't mass-assign protected attributes: address_attributes

Any Suggestions ??

Thanks....
Posted by Unnikrishnan Kp (unni123)
on 2012-11-21 05:42
(Received via mailing list)
add

*attr_accessible :address_attributes*

in your model.

Only the fields that you specify via attr_accessible, are open to mass
assignment.

Unni

On Wed, Nov 21, 2012 at 10:02 AM, Avi <aavinash.behera@gmail.com> wrote:

>
>  <% end %>
> Any Suggestions ??
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rubyonrails-talk/-....
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



--
Unni
Posted by avinash behera (Guest)
on 2012-11-21 05:58
(Received via mailing list)
I didn't get this :-
*attr_accessible :address_attributes*
*
*
Why we need to define this in user.rb?
We already have has_one relation. Will it not be accessing those 
attributes
in address model automatically?
Posted by Jim ruther Nill (jimboker)
on 2012-11-21 06:02
(Received via mailing list)
On Wed, Nov 21, 2012 at 12:56 PM, avinash behera
<aavinash.behera@gmail.com>wrote:

> I didn't get this :-
> *attr_accessible :address_attributes*
> *
> *
> Why we need to define this in user.rb?
> We already have has_one relation. Will it not be accessing those
> attributes in address model automatically?
>

fields_for uses <association>_attributes as the name of the fields when 
you
are using
accepts_nested_attributes_for :association so you need to define this in
attr_accessible


>> Only the fields that you specify via attr_accessible, are open to mass
>>>
>>> <%= simple_form_for @user ,:validate => true do |f| %>
>>> @user.build_profile
>>>  --
>>>
>> To unsubscribe from this group, send email to
> 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 https://groups.google.com/groups/opt_out.
>
>
>



--
Posted by Unnikrishnan Kp (unni123)
on 2012-11-21 06:15
(Received via mailing list)
http://stackoverflow.com/a/3283404/1731232

http://api.rubyonrails.org/classes/ActiveModel/Mas...

On Wed, Nov 21, 2012 at 10:31 AM, Jim Ruther Nill <jvnill@gmail.com> 
wrote:

>> Why we need to define this in user.rb?
>>
>>> assignment.
>>>> User.rb :-
>>>>            <%= f.fields_for :address do |d| %>
>>>>
>>>> You received this message because you are subscribed to the Google
>>>
>>> rubyonrails-talk+unsubscribe@googlegroups.com.
>> To unsubscribe from this group, send email to
> visit my blog at http://jimlabs.heroku.com
>
--
Unni
Posted by Rameshwar Vyevhare (Guest)
on 2012-11-21 06:48
(Received via mailing list)
http://currentricity.wordpress.com/2011/09/04/the-...
s_nested_attributes_for-a-model-in-rails-3/


From:  Unni <unni.tallman@gmail.com>
Reply-To:  <rubyonrails-talk@googlegroups.com>
Date:  Wednesday, 21 November 2012 10:44 AM
To:  <rubyonrails-talk@googlegroups.com>
Subject:  Re: [Rails] Nested Attributes in Rails 3

http://stackoverflow.com/a/3283404/1731232

http://api.rubyonrails.org/classes/ActiveModel/Mas...
ethods.html#method-i-attr_accessible

On Wed, Nov 21, 2012 at 10:31 AM, Jim Ruther Nill <jvnill@gmail.com> 
wrote:
>> in address model automatically?
>>>
>>>> Hello All,
>>>> belongs_to :user
>>>>
>>>>
>>>>
>>> To post to this group, send email to rubyonrails-talk@googlegroups.com.
>> "Ruby on Rails: Talk" group.
> --
>
>



--
Unni


--
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 https://groups.google.com/groups/opt_out.
Posted by avinash behera (Guest)
on 2012-11-21 06:49
(Received via mailing list)
I tried with that. But somewhere validations are failing. I had dropped 
my
db. Trying to create a user. But in console it says:
User already exists.
Not sure.
In controller I have mentioned as @user.build_profile. Is it fine?
& in erb file, I am using simple_form_for.
So can we use fields_for there?
Posted by Unnikrishnan Kp (unni123)
on 2012-11-21 07:07
(Received via mailing list)
*@user = User.new*
*@user.build_profile*

Is that all what you have in the controller in create action?

*@user = User.new(params[:user]) *

is what one would expect.

On Wed, Nov 21, 2012 at 11:17 AM, avinash behera
<aavinash.behera@gmail.com>wrote:

>
>>>
>>>>
>>>>
>>>>>
>>>>>>
>>>>>>           <% end %>
>>>>>> Can't mass-assign protected attributes: address_attributes
>>>>>> rubyonrails-talk@googlegroups.com.
>>>>>
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>> rubyonrails-talk+unsubscribe@googlegroups.com.
>>>
>>
>> rubyonrails-talk+unsubscribe@googlegroups.com.
> "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 https://groups.google.com/groups/opt_out.
>
>
>



--
Unni
Posted by avinash behera (Guest)
on 2012-11-21 07:18
(Received via mailing list)
In new :-

@user = User.new
@user.build_address # here is it required while building the page ?

create :-

@user = User.new(params[:user])
@user.save
If I use build here, I am not getting those attributes present in 
address
model in UI.

Sorry I have communicated wrong. This is the controller
Posted by avinash behera (Guest)
on 2012-11-21 07:26
(Received via mailing list)
Its working now. Its my fault.
I forgot to remove an attribute's validation which I moved from User 
model
to Address model. There validation was failing.
Thanks for helping me out...

On Wed, Nov 21, 2012 at 11:46 AM, avinash behera
Posted by Unnikrishnan Kp (unni123)
on 2012-11-21 07:30
(Received via mailing list)
Cheers !

On Wed, Nov 21, 2012 at 11:55 AM, avinash behera
<aavinash.behera@gmail.com>wrote:

>>
>> Sorry I have communicated wrong. This is the controller
>>>
>>>> & in erb file, I am using simple_form_for.
>>>>>
>>>>>>> *
>>>>>>
>>>>>>>>
>>>>>>>>> here is my code :-
>>>>>>>>>
>>>>>>>>> @user = User.new
>>>>>>>>>
>>>>>>>>>
>>>>>>>> Groups "Ruby on Rails: Talk" group.
>>>>>>>  --
>>>>>>
>>>>>> rubyonrails-talk@googlegroups.com.
>>>>> Unni
>>>>>
>>>> rubyonrails-talk+unsubscribe@googlegroups.com.
>>>  --
>>
>
>
>



--
Unni
Posted by Jinet (Guest)
on 2012-11-21 16:16
(Received via mailing list)
hi..
im going to start learning ruby..now dont know even a single thing about
ruby,,can anyone please suggest how to start learning..?
thank you..
jinet

On 21 November 2012 11:59, Unni <unni.tallman@gmail.com> wrote:

>>
>>>
>>>> *@user = User.new*
>>>>
>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>           <% end %>
>>>>>>>>>> Can't mass-assign protected attributes: address_attributes
>>>>>>>>>> rubyonrails-talk@googlegroups.com.
>>>>>>>>>
>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>> visit my blog at http://jimlabs.heroku.com
>>>>>>>
>>>>>> To post to this group, send email to
>>>>>
>>>>>
>>>> To unsubscribe from this group, send email to
>>  --
>
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



--
Posted by Colin Law (Guest)
on 2012-11-21 17:00
(Received via mailing list)
On 21 November 2012 12:28, Jinet <jinet.pampara@gmail.com> wrote:
>
> hi..
> im going to start learning ruby..now dont know even a single thing about
> ruby,,can anyone please suggest how to start learning..?
> thank you..

What has that got to do with the subject line (Nested Attributes in
Rails 3) and why have you posted a large message with many irrelevant
quoted lines?

You say you want to learn to use Ruby, but this is a Ruby on Rails
list so I assume you want to learn Ruby on Rails.
The answer is to start by working through a good rails tutorial such
as railstutorial.org (which is free to use online).  I assume you
already know the basics of html, if not then start there.
Also work on your google skills, I am sure that a search for learning
ruby rails would have given you many useful answers.

If you want to ask more then please start a new thread with an
appropriate subject line.

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.