Hi, I have three tables: Expenses, Vendors and Vendor _Accounts It should operate as follows: When a new Expense record is created, A vendor is selected from a drop-down of Vendors and, An account is selected from a drop-down of Vendor_Accounts where Vendor_Accounts#vender == selected vendor So I should have a structure something like: class Expense has_one Vendor class Vendor has_many Vendor_Accounts where Vendor#id == Vendor_Accounts#vendor belongs_to Expense class Vendor_Account belongs_to Vendor I don’t think I should have Expense, Vendor and Account tables because the accounts defined by each vendor bear no relationship with the other vendors’ account beyond the mere concept of “account”. Does this make sense, and if so, how precisely should I describe these relationships? Am I close with the above idea? BTW, I''m running Rails 2.3.5, Ruby 1.8.6, WinXP-Pro/SP3, Firefox 3.6.2, Firebug 1.5.3, MySQL 5.0.37-community-nt, Mongrel, Apache HTTP Server 2.2.15 Thanks in Advance, Richard -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thinking about it some more, I now think I should have separate Expense, Vendor and Account tables with the following relationships: class Expense has_one Vendor class Vendor has_many Accounts belongs_to Expense class Account belongs_to Vendor Then an Expense record can get Accounts through Vendor. .. or something like that. Am I getting warmer? Thanks in Advance, Richard On May 11, 8:57 pm, RichardOnRails <RichardDummyMailbox58...-FtJgd9dCuO3JTKoYRCtP1UEOCMrvLtNR@public.gmane.org> wrote:> Hi, > > I have three tables: Expenses, Vendors and Vendor _Accounts > > It should operate as follows: > When a new Expense record is created, > A vendor is selected from a drop-down of Vendors and, > An account is selected from a drop-down of Vendor_Accounts where > Vendor_Accounts#vender == selected vendor > > So I should have a structure something like: > class Expense > has_one Vendor > > class Vendor > has_many Vendor_Accounts where Vendor#id == Vendor_Accounts#vendor > belongs_to Expense > > class Vendor_Account > belongs_to Vendor > > I don’t think I should have Expense, Vendor and Account tables because > the accounts defined by each vendor bear no relationship with the > other vendors’ account beyond the mere concept of “account”. > > Does this make sense, and if so, how precisely should I describe > these relationships? Am I close with the above idea? > > BTW, I''m running Rails 2.3.5, Ruby 1.8.6, WinXP-Pro/SP3, Firefox > 3.6.2, Firebug 1.5.3, > MySQL 5.0.37-community-nt, Mongrel, Apache HTTP Server 2.2.15 > > Thanks in Advance, > Richard > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Expense would belong to Vendor, not have one Vendor, unless you are planning to put the foreign key in the vendors table, which sounds very strange, as that would require a new vendor to be created for every expense. If you are fist selecting a vendor, and then selecting an account belonging to that vendor when you create an expense, then it makes sense to hook expense up to account, not vendor. class Vendor has_many :accounts class Account belongs_to :vendor has_many :expenses class Expense belongs_to :account Then when you have created an expense you can get its account through @expense.account and its vendor through @expense.account.vendor. Does this make sense? On May 12, 3:22 am, RichardOnRails <RichardDummyMailbox58...-FtJgd9dCuO3JTKoYRCtP1UEOCMrvLtNR@public.gmane.org> wrote:> Thinking about it some more, I now think I should have separate > Expense, Vendor and Account tables with the following relationships: > > class Expense > has_one Vendor > > class Vendor > has_many Accounts > belongs_to Expense > > class Account > belongs_to Vendor > > Then an Expense record can get Accounts through Vendor. .. or > something like that. > > Am I getting warmer? > > Thanks in Advance, > Richard > > On May 11, 8:57 pm, RichardOnRails > > > > <RichardDummyMailbox58...-FtJgd9dCuO3JTKoYRCtP1UEOCMrvLtNR@public.gmane.org> wrote: > > Hi, > > > I have three tables: Expenses, Vendors and Vendor _Accounts > > > It should operate as follows: > > When a new Expense record is created, > > A vendor is selected from a drop-down of Vendors and, > > An account is selected from a drop-down of Vendor_Accounts where > > Vendor_Accounts#vender == selected vendor > > > So I should have a structure something like: > > class Expense > > has_one Vendor > > > class Vendor > > has_many Vendor_Accounts where Vendor#id == Vendor_Accounts#vendor > > belongs_to Expense > > > class Vendor_Account > > belongs_to Vendor > > > I don’t think I should have Expense, Vendor and Account tables because > > the accounts defined by each vendor bear no relationship with the > > other vendors’ account beyond the mere concept of “account”. > > > Does this make sense, and if so, how precisely should I describe > > these relationships? Am I close with the above idea? > > > BTW, I''m running Rails 2.3.5, Ruby 1.8.6, WinXP-Pro/SP3, Firefox > > 3.6.2, Firebug 1.5.3, > > MySQL 5.0.37-community-nt, Mongrel, Apache HTTP Server 2.2.15 > > > Thanks in Advance, > > Richard > > > -- > > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi Sharagoz,> Does this make sense?Absolutely! It''s crystal clear. Many thanks, Richard On May 12, 3:58 am, Sharagoz <shara...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Expense would belong to Vendor, not have one Vendor, unless you are > planning to put the foreign key in the vendors table, which sounds > very strange, as that would require a new vendor to be created for > every expense. > If you are fist selecting a vendor, and then selecting an account > belonging to that vendor when you create an expense, then it makes > sense to hook expense up to account, not vendor. > > class Vendor > has_many :accounts > > class Account > belongs_to :vendor > has_many :expenses > > class Expense > belongs_to :account > > Then when you have created an expense you can get its account through > @expense.account and its vendor through @expense.account.vendor. > Does this make sense? > > On May 12, 3:22 am, RichardOnRails > > > > <RichardDummyMailbox58...-FtJgd9dCuO3JTKoYRCtP1UEOCMrvLtNR@public.gmane.org> wrote: > > Thinking about it some more, I now think I should have separate > > Expense, Vendor and Account tables with the following relationships: > > > class Expense > > has_one Vendor > > > class Vendor > > has_many Accounts > > belongs_to Expense > > > class Account > > belongs_to Vendor > > > Then an Expense record can get Accounts through Vendor. .. or > > something like that. > > > Am I getting warmer? > > > Thanks in Advance, > > Richard > > > On May 11, 8:57 pm, RichardOnRails > > > <RichardDummyMailbox58...-FtJgd9dCuO3JTKoYRCtP1UEOCMrvLtNR@public.gmane.org> wrote: > > > Hi, > > > > I have three tables: Expenses, Vendors and Vendor _Accounts > > > > It should operate as follows: > > > When a new Expense record is created, > > > A vendor is selected from a drop-down of Vendors and, > > > An account is selected from a drop-down of Vendor_Accounts where > > > Vendor_Accounts#vender == selected vendor > > > > So I should have a structure something like: > > > class Expense > > > has_one Vendor > > > > class Vendor > > > has_many Vendor_Accounts where Vendor#id == Vendor_Accounts#vendor > > > belongs_to Expense > > > > class Vendor_Account > > > belongs_to Vendor > > > > I don’t think I should have Expense, Vendor and Account tables because > > > the accounts defined by each vendor bear no relationship with the > > > other vendors’ account beyond the mere concept of “account”. > > > > Does this make sense, and if so, how precisely should I describe > > > these relationships? Am I close with the above idea? > > > > BTW, I''m running Rails 2.3.5, Ruby 1.8.6, WinXP-Pro/SP3, Firefox > > > 3.6.2, Firebug 1.5.3, > > > MySQL 5.0.37-community-nt, Mongrel, Apache HTTP Server 2.2.15 > > > > Thanks in Advance, > > > Richard > > > > -- > > > 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-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.orgm. > > > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.