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 rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to 
> rubyonrails-talk+unsubscr...@googlegroups.com.
> 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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to