Hello Experts,
I have a tree of categories in this category object there is a property
called type.
the root categories have no type but the children have. so how I can get
all the roots with filled in children that have category type = ‘B’ for
instance.
I tried to run Category.roots then delete children With a category not
equal to ‘B’ but this causes a major performance problems.
Hello Experts,
I have a tree of categories in this category object there is a property
called type.
the root categories have no type but the children have. so how I can get
all the roots with filled in children that have category type = ‘B’ for
instance.
I tried to run Category.roots then delete children With a category not
equal to ‘B’ but this causes a major performance problems.
how to call roots with filter children?
Not answering the question but I would avoid using a field named
‘type’. Rails expect this to be used with STI and may become confused
if it used as a normal field.
Hello,
It didn’t work i want to bring all roots that a children have one type
not only one root.
something like @categories = Category.roots
but with children condition category_type => ‘2’
I had a similar problem and this was my solution:
Migrate to the awesome_nested_sets gem. You can do this by installing
the gem, adding a couple fields to your table, and then running the
rebuild command. See the instructions here →
I call my nested_set ‘Library’ and only wanted users to see the
libraries that were either created for their company or not assigned
to any company.
I created this method in the user table:
def libraries
libraries = Library.arel_table
Library.where(libraries[:company_id].eq(nil).or(libraries[:company_id].eq(self.company_id)))
end
Hello,
thanks for your advice, however i wanted all the roots chould parent
should be always nil, but in the same time I want the children for this
roots to be filtered only with a specific type.
root1-
child1 type A
child2 type B
root2
child3 type A
Child4 type B
when i apply the filter on type A the result should be as follows:
Sorry if this is a double post but I had browser issues.
I had a similar problem and this is how I solved it.
First, switch to the awesome_nested_sets gem. After installing the
gem, you will need to add a couple fields and run a rebuild command.
See the instructions here →
My nested set is called ‘Library’ and I only wanted users to see
libraries that were either created for their company or not assigned
to any company (ie. library.company_id == user.company_id or
library.company_id == nil).
I created this user method:
def libraries
libraries = Library.arel_table
Library.where(libraries[:company_id].eq(nil).or(libraries[:company_id].eq(self.company_id)))
end
And call it from the controller using: @libraries = current_user.libraries.order(‘lft ASC’)
In the view, I create a table and then use the jquery.treeTable.js to
created a widget that allows for easy navigation of the tree/sets.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.