Recently started working with rails; I''m very impressed so far, but I do have a question - Say I''m running a blog-type application. I''ve got a Users table, and a Posts table. Each post on the blog is made by a user. The Post table has an FK user_id that keeps track of the author of the post. This is all well and good, but I''ve found myself doing this a lot: class Post def get_author_name user = User.find(user_id) user.name end end which definitely works for retrieving the author name when I''m rendering my view, but I''m worried I''m going to be weaving my classes too tightly, especially given how often this type of scenario can come up. Does anyone have a better approach? Thanks! -- 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 at http://groups.google.com/group/rubyonrails-talk?hl=en.
Sharagoz --
2010-Feb-10 10:44 UTC
Re: help decoupling models with a foreign key relationship
class Post belongs_to :user end Then you can do post.user.name retrieve the name of the author of the post -- 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-/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 at http://groups.google.com/group/rubyonrails-talk?hl=en.
That''s handy! Does that work too if I say class Post has_one :user end I guess the real question is - what''s the difference between has_one and belongs_to? On Feb 10, 4:44 am, Sharagoz -- <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> class Post > belongs_to :user > end > > Then you can do post.user.name retrieve the name of the author of the > post > -- > Posted viahttp://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-/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.
Marnen Laibow-Koser
2010-Feb-10 14:07 UTC
Re: help decoupling models with a foreign key relationship
robo wrote:> That''s handy! Does that work too if I say > > class Post > has_one :user > end > > I guess the real question is - what''s the difference between has_one > and belongs_to?The location of the foreign key. Go read the Associations docs. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- 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-/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.
Mat Brown
2010-Feb-10 14:09 UTC
Re: Re: help decoupling models with a foreign key relationship
belongs_to means the foreign key is an attribute of this model. has_one/has_many means it''s an attribute of the associated model. On Feb 10, 2010 8:47 AM, "robo" <chase.delanguillette-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: That''s handy! Does that work too if I say class Post has_one :user end I guess the real question is - what''s the difference between has_one and belongs_to? On Feb 10, 4:44 am, Sharagoz -- <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> class Post > belongs_to :user > e... > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk"... -- 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 at http://groups.google.com/group/rubyonrails-talk?hl=en.