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
-~----------~----~----~----~------~----~------~--~---