Rick R wrote:
> My initial example is probably confusing. Here is another shot at it in
> something that has more meaning:
> 
> A User can create multiple “notices” ( eg “Corporate meeting notice”, 
> “Big
> Sale Items”, “Job Wanted” )
> A User can create multiple “notice groups” (eg “Corporate Notices”, 
> “Public
> Notices”, “My Miscellaneous Notices”)

Are these notice groups specific to the one user, or are they more like 
global discussion topics?

Can notice groups contain notices created by users other than the one 
who created the group?

> Every notice should belong to an “notice group”
> A User needs to be able to subscribe to multiple “notice groups” so that
> they could  see the notices in the different groups they’re subscribed 
> to.
> 
> 
> To model this relationship, I was thinking:
> 
> User
>   has_many :notices
>   has_and_belong_to_many :notice_groups
> 
> Notice
>   has_one :notice_group

That should be belongs_to, not has_one.

>   belongs_to :user
> 
> NoticeGroup
>    has_and_belongs_to_many :users
> 
> So first question, is the above set up correctly?

Maybe, maybe not.  Depends on the questions above.

> 
> How would I also model that a “NoticeGroup” is ‘owned/created’ by a
> particular user? Right now the HABTM on NoticeGroup seems to imply that 
> the
> NoticeGroup can belong to many Users but I also need it to show that its
> owned/created by a particular User (owner_id concept on NoticeGroup?), 
> can I
> have a HABTM :users and a belongs_to :User in the same NoticeGroup model
> definition?
> 

Sure.  Just give the associations different names.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
[email protected]
-- 
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 [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