I want to implement a tree menu (simple example of tree menu) in a Rails app that I am working on. I am unsure of whether to use acts_as_tree or Ancestry. Its seems that it would be easier to implements a simple tree menu using acts_as_tree, however, Ancestry is more popular and regularly maintained. Does anyone have any thoughts on this?
acts_as_tree vs ancestry gem for tree menu
5.7k Views Asked by Tom Kadwill At
1
There are 1 best solutions below
Related Questions in RUBY-ON-RAILS
- How to display legend box in tooltip text for amCharts 5 in Rails application?
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- rails minitest not picking up fixture properly, instance variable not percolating
- Duplicate GET requests - Rails & Heroku
- How to stub out current_user in JWT model for Rspec?
- NameError in Home#index
- Verifying Google Identity OAuth2 token with Ruby
- Error WebMock::NetConnectNotAllowedError in testing with stub using minitest in rails (using Faraday)
- why is mission_control-jobs erroring with load path error?
- Rescuing validation errors from a polymorphic association
- New error on random number assigned to local variable , Rails
- How to fix error in model with gem lockbox
- Images uploaded via Active Storage not displaying in Active Admin or on certain devices
- controller test_methods generating two errors intermittently
Related Questions in RUBYGEMS
- Installing dependencies from a gemspec file
- How to fix error in model with gem lockbox
- rails import / require mechanism fails
- Relation RubyGems, Ruby Version, Bundler Version, RVM and Capistrano Conflict
- How to solve the undefine method and expand path error in Bundler
- Error running a rails project after updating versions
- why am i getting an 'unable to lock database: permission denied' error when installing mysql for rails 7 on windows
- How can I change a dependencies for an installed Gem
- While installing ruby in windows i am getting this error ERROR: Failed to build gem native extension and yaml.h not found
- Mapkick Gem Mapbox marker icon
- gem installation from source and naming of the gems -x86_64-linux suffix
- Should updating rails and active record change the behavior of .days?
- Summing odd integers from an Array in Ruby
- How to do an advanced search in rubygems for libraries with most downloads
- Reserved key when using I18n-tasks add-missing
Related Questions in ACTS-AS-TREE
- Acts As Tree: assigning parent to a child with letting parent know about it?
- User is not able to make root of tree in acts_as_tree in rails 5.0
- Undefined method `acts_as_tree'
- closure_tree ancestors is giving ancestors in reverse order
- Sort collection after associated resource's acts_as_tree/acts_as_list order
- Delete Children rails 4
- how to implement acts_as_tree on controller of a specific Model
- acts_as_tree not working with sinatra
- How do I create a scope on an associated closure_tree model?
- acts_as_tree and active_model_serializer
- how to loop through an acts_as_tree or ancestry hierarchy
- How to use ruby acts_as_tree gem with Ember.js?
- Joining with named scopes in Ruby
- Acts_as_tree finding file location
- Acts as Tree gem - Is there any way to make an element have two parents?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Use ancestry. It has more powerful query capabilities as it implements the materialized path pattern, as opposed to acts_as_tree that implements adjacency list.
There are other options too, like nested set, but materialized path is usually the most comprehensive.
https://communities.bmc.com/communities/docs/DOC-9902
If you need to sort in preorder at DB level (for example a paginated tree-grid, a preloaded menu that you iterate and indent/dedent according to the depth in tree for displaying) you need to either use a recursive query, or sortable encoding like nested set or nested interval. (That is if sorting in memory is not an option, and it almost never is.)
https://github.com/collectiveidea/awesome_nested_set
https://github.com/clyfe/acts_as_nested_interval
Each has ups and downs. Choose your what fits you.