On Jul 14, 2011, at 3:07 PM, Leonel *.* wrote:
>> You have both a regular route and a nested route for your users. Make
>> sure your form is submitting to the nested route.
>> It should look something like (depending on your variable names):
>>
>> form_for [@company, @user] do |f|
>>
>> Without the company your form will post to /users and the company id
>> will not be passed.
>
> I only want to create a new User not a new Company. The Company is
> pre-existent.
Using the company in the form_for doesn't mean you are creating a new company
as well. That is just generating the nested url to submit the form to.
Leaving out the @company will mean that the form get submitted to /users
instead of /companies/:company_id/users. Which if I understood you correctly
is where you want to submit your form to so that you will have the company id
in your params list.
> A lot of tutorials I found don't explain how to do that,
> they explain how to create the Parent and Child at the same time. I
> ALREADY have the Parent, I just want to create a Child for it, and have
> the id of the parent written into the Child table, like parent_id.
>
> How would I make the results get written into a user record? Yesterday
> when I was trying to work on it, I read something about a "build"
> method. Is that what you recommend I use?
You use build on an association to get a new instance of that association.
In your users controller you should have something like:
def create
@company = Company.find params[:company_id]
@user = @company.users.build params[:user]
...
end
Using the build on the users association will automatically set the parent id.
It is the same as doing:
@user = User.new params[:user]
@user.company_id = @company_id
and setting any other conditions you have specified on the association
manually.
Juan
>
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> 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.
>
--
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.