hi, got a small problem below and not to sure how to overcome this using rails two tables involved with this projects and quotes each project has a field quote_id as a forign field. When a user is ready to upload a quote they are linked to quotes/new from the show project page. Once the quote is uploaded how can I then set the quote_id field with the correct key? -- Posted via http://www.ruby-forum.com/.
I''m confused, does a project have many quotes or does a quote have many projects? I would seem to me that I project would have many quotes, therefore you want the quote object to have a foreign key to the project, a.k.a quote.project_id. If that is the case, then you need some way in your interface for the user to choose which project they are uploading the quote for. two ways of doing it: 1) Have a page that lists all projects. Next to each project, provide a link to /quote/new/1, where 1 is the project id. You could do /quote/new?project_id=1 also, whatever your preference. The first one looks nicer but the second one is more explicit as to what the 1 means. 2) Have a drop-down menu on the quote/new.rhtml page where the user must select which project they are uploading a quote for. On 5/8/06, ss <scott@boxuk.com> wrote:> > hi, > > got a small problem below and not to sure how to overcome this using > rails > > two tables involved with this projects and quotes > > each project has a field quote_id as a forign field. > > When a user is ready to upload a quote they are linked to quotes/new > from the show project page. Once the quote is uploaded how can I then > set the quote_id field with the correct key? > > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060508/1c03ee1f/attachment.html
> 1) Have a page that lists all projects. Next to each project, provide > a > link to /quote/new/1, where 1 is the project id. You could do > /quote/new?project_id=1 also, whatever your preference. The first one > looks > nicer but the second one is more explicit as to what the 1 means.A project will only have one quote Passing over the project id to the quote is a good idea. The user now gets taken to quotes/new/11 for example, however then they submit the data, they get passed to quotes/create how can I get the id to forward across? -- Posted via http://www.ruby-forum.com/.
Will a quotes have many projects? Or is it just a one-to-one relationship between quote and project? If you have a url like /quote/new/1, then in the new method of the quote controller, params[:id] will be equal to your project id. So you just simply do @quote = Quote.new(:product_id => params[:id]) in the controller. Make sure the action of the form on the new.rhtml is /quote/create/1. Also, once you have created a quote, to edit is, you will do /quote/edit/1, but in that case params[:id] will be the quote.id, not quote.product_id. On 5/8/06, ss <scott@boxuk.com> wrote:> > > 1) Have a page that lists all projects. Next to each project, provide > > a > > link to /quote/new/1, where 1 is the project id. You could do > > /quote/new?project_id=1 also, whatever your preference. The first one > > looks > > nicer but the second one is more explicit as to what the 1 means. > > A project will only have one quote > > Passing over the project id to the quote is a good idea. > > The user now gets taken to quotes/new/11 for example, however then they > submit the data, they get passed to quotes/create > > how can I get the id to forward across? > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060508/35e526d8/attachment.html
Sorry, if that wasn''t clear, you can forward the id along by using this url in your form: :action => "create", :id => @quote.product_id On 5/8/06, Paul Barry <mail@paulbarry.com> wrote:> > Will a quotes have many projects? Or is it just a one-to-one relationship > between quote and project? > > If you have a url like /quote/new/1, then in the new method of the quote > controller, params[:id] will be equal to your project id. So you just > simply do @quote = Quote.new(:product_id => params[:id]) in the > controller. Make sure the action of the form on the new.rhtml is > /quote/create/1. Also, once you have created a quote, to edit is, you will > do /quote/edit/1, but in that case params[:id] will be the quote.id, not > quote.product_id. > > On 5/8/06, ss <scott@boxuk.com> wrote: > > > > 1) Have a page that lists all projects. Next to each project, > > provide > > > a > > > link to /quote/new/1, where 1 is the project id. You could do > > > /quote/new?project_id=1 also, whatever your preference. The first one > > > > > looks > > > nicer but the second one is more explicit as to what the 1 means. > > > > A project will only have one quote > > > > Passing over the project id to the quote is a good idea. > > > > The user now gets taken to quotes/new/11 for example, however then they > > submit the data, they get passed to quotes/create > > > > how can I get the id to forward across? > > > > -- > > Posted via http://www.ruby-forum.com/. > > _______________________________________________ > > Rails mailing list > > Rails@lists.rubyonrails.org > > http://lists.rubyonrails.org/mailman/listinfo/rails > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060508/fff2fd20/attachment.html