I've always used HM :through for descriptive associations - usually I
just want a created_at date so one could determine when a user joined
a group (for example).  I don't see how a "Tracker", which looks like
a join, makes sense without both a User and a Player.

This is correct understanding:
"resources that should be nested are those that can't really exist
outside of another resource"

if a resource makes sense outside of the nesting then it shouldn't be
nested.

the traditional example is Article -> Comments - you could have
Comments outside the context of an article - but they don't have much
meaning


On Dec 9, 2:06 pm, lunaclaire <[EMAIL PROTECTED]> wrote:
> Thanks, Andy. It occurred to me this morning that it would useful to
> add the has_many/through to it.
>
> I'm still not clear though on the nested aspect of the design.
>
> I ~thought~ I needed to nest the *Trackers* under one or the other of
> Users or Players... this follows from my reading that resources that
> should be nested are those that cant really exist outside of another
> resource. In my case a Tracker doesnt make sense without the
> association with a Player first and without a User second... Players
> *can* exist without a User.
>
> Am I getting it right?
>
> Also, I seem to read that I can nest under *both* Users and Players.
> Things can get more complex, but it can be done.
>
> Is this true? If so, again, I'm curious what people say re: doing
> so... and back to my original post, would it better (aka simpler) to
> nest Trackers under Players and rely on a current_user variable being
> set to make that association in the TrackersController when a new
> Tracker is being created for a Player?
>
> On Dec 9, 9:01 am, Andy Koch <[EMAIL PROTECTED]> wrote:
>
>
>
> > It sounds to me like Users have Players is your nesting.  Also, you
> > seem to have a "has_many :through" join setup but have implemented a
> > basic "has_many".  Consider this change....
>
> > class Player < ActiveRecord::Base
> > ...
> >   has_many :trackers
> >   has_many :users, :through => :trackers
> > ...
> > end
>
> > class User < ActiveRecord::Base
> > ...
> >  has_many :trackers
> >   has_many :players, :through => :trackers
> > ...
> > end
>
> > class Tracker < ActiveRecord::Base
> > ...
> >  belongs_to     :user
> >  belongs_to     :player
> > ...
> > end
>
> > On Dec 8, 5:11 pm, lunaclaire <[EMAIL PROTECTED]> wrote:
>
> > > I'm currently in my first app desgined using REST and after reading a
> > > few tutorials the basics are pretty clear, but I have a design problem
> > > that I bet is common, but I'm not sure of the best approach...
>
> > > Here are my classes/resources:
>
> > > class Player < ActiveRecord::Base
> > > ...
> > >   has_many :trackers
> > > ...
> > > end
>
> > > class User < ActiveRecord::Base
> > > ...
> > >  has_many :trackers
> > > ...
> > > end
>
> > > class Tracker < ActiveRecord::Base
> > > ...
> > >  belongs_to     :user
> > >  belongs_to     :player
> > > ...
> > > end
>
> > > I had no problem doing the basic generation of scaffolding and
> > > building out functionality for Player and User, but now that I'm
> > > building out the Trackers that allow a User to track a Player, I'm
> > > confused.
>
> > > I thought at first that maybe I'd set it up as a nested resource, but
> > > that's not making sense to me because a Tracker belongs to both a User
> > > and a Player.
>
> > > Also, from a user story design perspective, the basic thing here is
> > > that a user should be able to track a listed or displayed Player. So,
> > > I think one of the views will display lists of Players with each
> > > having a "Track" button or link next to them. I'd guess this will make
> > > use of a "new_tracker_path", but that would need to pass params for
> > > *both* the current User and the selected Player... right? (I tried it
> > > with just passing the Player ref and thought I could just deal with my
> > > @current_user variable in the controller, but something wasnt right)
>
> > > So, can anyone help with advice on best practices for this kind of
> > > design where a resource is joining two other resources?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to