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