If you want all folders belonging to all groups for a user, you can
do:

user.groups.collect{|g| g.folders}.flatten.uniq

which will return all unique folders in an array.

-Brady
[EMAIL PROTECTED]

On Oct 2, 8:20 pm, Ko None <[EMAIL PROTECTED]> wrote:
> Currently my User model has has_many groups and the Group model has_many
> folders.
>
> so is there any way to pulling all the folders like this.
> user.groups.folders?
>
> Currently I have to loop like this and dump them in to array.
>
> [code=]  def user_folders
>     user_folders = []
>     user_folders.push(self.folders.collect)
>     self.groups.each do |group|
>       user_folders.push(group.folders.collect)
>     end
>     user_folders = user_folders.flatten.uniq
>   end
> [/code]
>
> I get this error
> "ActiveRecord::HasManyThroughSourceAssociationMacroError: Invalid source
> reflection macro :has_many :through for has_many :group_folders,
> :through => :groups.  Use :source to specify the source reflection."
>
> User model
> [code=]  has_many :permissions
>   has_many :folders, :through => :permissions
>   has_many :members
>   has_many :groups, :through => :members
>   has_many :group_folders, :through => :groups, :source => :folders
> [/code]
>
> Group model
> [code=]  has_many :members
>   has_many :users, :through => :members
>   has_many :permissions
>   has_many :folders, :through => :permissions
> [/code]
>
> So is there a easy way to pull user.groups.folders without looping
> through each group and saving folder in a array?
> --
> 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 [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