Problem z awesome_nested_set

Mam własny prosty mechanizm na zmianę pozycji w drzewie, ale trochę się namęczyłem nad tymi zapytaniami sql no i kod nie wygląda tak ładnie jak powinien. Dlatego postanowiłem “zainwestować” w awesome_nested_set, które da mi dodatkowo dużo większą funkcjonalność.

  1. Zainstalowałem gem’a
  2. Wpisałem acts_as_nested_set w pliku modelu
  3. Przy próbie wyświetlenia listy wpisów otrzymuje komunikat:undefined local variable or method `acts_as_nested_set' for #<Class:0xc375b48>
    Co pominąłem ? Czy przypadkiem awesome_nested_set nie powinien obsługiwać tego acts_as_nested_set ?

Korzystasz z bundlera? Jeśli tak to dodaj wpis do Gemfile, a potem bundle w katalogu aplikacji.

tak użyłem, mam zainstalowane w wersji 1.4.3, mój model wygląda tak:

class Unit < ActiveRecord::Base acts_as_nested_set end

Spróbuje dodać require ‘awsome_nested_set’ w config/application.rb (na końcu). Pokaż też zawartość Gemfile.lock

dodałem ten require na samym koncu pliku config/application.rb, ale to nie pomogło

Gemfile.lock:

[code]GEM
remote: http://rubygems.org/
specs:
abstract (1.0.0)
actionmailer (3.0.3)
actionpack (= 3.0.3)
mail (~> 2.2.9)
actionpack (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
builder (~> 2.1.2)
erubis (~> 2.6.6)
i18n (~> 0.4)
rack (~> 1.2.1)
rack-mount (~> 0.6.13)
rack-test (~> 0.5.6)
tzinfo (~> 0.3.23)
activemodel (3.0.3)
activesupport (= 3.0.3)
builder (~> 2.1.2)
i18n (~> 0.4)
activerecord (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
arel (~> 2.0.2)
tzinfo (~> 0.3.23)
activeresource (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
activesupport (3.0.3)
acts_as_list (0.1.2)
annotate-models (1.0.4)
arel (2.0.9)
authlogic (2.1.6)
activesupport
awesome_nested_set (1.4.3)
activerecord (>= 1.1)
builder (2.1.2)
declarative_authorization (0.5.2)
diff-lcs (1.1.2)
erubis (2.6.6)
abstract (>= 1.0.0)
i18n (0.5.0)
i18n_routing (0.4.7)
i18n (> 0.3.5)
mail (2.2.15)
activesupport (>= 2.3.6)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
pg (0.10.1)
polyglot (0.3.1)
rack (1.2.2)
rack-mount (0.6.14)
rack (>= 1.0.0)
rack-test (0.5.7)
rack (>= 1.0)
rails (3.0.3)
actionmailer (= 3.0.3)
actionpack (= 3.0.3)
activerecord (= 3.0.3)
activeresource (= 3.0.3)
activesupport (= 3.0.3)
bundler (~> 1.0)
railties (= 3.0.3)
railties (3.0.3)
actionpack (= 3.0.3)
activesupport (= 3.0.3)
rake (>= 0.8.7)
thor (~> 0.14.4)
rake (0.8.7)
rspec (2.0.1)
rspec-core (~> 2.0.1)
rspec-expectations (~> 2.0.1)
rspec-mocks (~> 2.0.1)
rspec-core (2.0.1)
rspec-expectations (2.0.1)
diff-lcs (>= 1.1.2)
rspec-mocks (2.0.1)
rspec-core (~> 2.0.1)
rspec-expectations (~> 2.0.1)
rspec-rails (2.0.1)
rspec (~> 2.0.0)
ruby_parser (2.0.6)
sexp_processor (~> 3.0)
rubycas-client (2.2.1)
activesupport
sexp_processor (3.0.5)
thor (0.14.6)
treetop (1.4.9)
polyglot (>= 0.3.1)
tzinfo (0.3.26)

PLATFORMS
ruby

DEPENDENCIES
acts_as_list
annotate-models
authlogic
awesome_nested_set
declarative_authorization
i18n_routing
pg (= 0.10.1)
rails (= 3.0.3)
rspec (= 2.0.1)
rspec-rails (= 2.0.1)
ruby_parser
rubycas-client[/code]

A zrestartowałeś serwer?

awesome_nested_set nie działa z Rails 3, jeżeli chcesz aby działało polecam jednen z forków:

gem tego forka widnieje jako nested_set (nie awesome_nested_set) - sprawdziłem, działa :slight_smile:

Wpisałem do Gemfile ten gem, potem dałem bundle, usunołem awesom_nested_set z gemfile i dalej nie działa.

Dostajesz taki sam błąd jak poprzednio?
dodałeś pola lft, rgt i parent_id do modelu?

Ale dałeś bundle install? Pokaż Gemfile.lock po całej operacji. nested_set używa m.in. Spree (spreecommerce.com) i tam bangla jak marzenie.

wpisuje zawsze bundle po dodaniu nowego gema do gemfile. Mój Gemfile.lock wygląda tak:

[code]GEM
remote: http://rubygems.org/
specs:
abstract (1.0.0)
actionmailer (3.0.3)
actionpack (= 3.0.3)
mail (~> 2.2.9)
actionpack (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
builder (~> 2.1.2)
erubis (~> 2.6.6)
i18n (~> 0.4)
rack (~> 1.2.1)
rack-mount (~> 0.6.13)
rack-test (~> 0.5.6)
tzinfo (~> 0.3.23)
activemodel (3.0.3)
activesupport (= 3.0.3)
builder (~> 2.1.2)
i18n (~> 0.4)
activerecord (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
arel (~> 2.0.2)
tzinfo (~> 0.3.23)
activeresource (3.0.3)
activemodel (= 3.0.3)
activesupport (= 3.0.3)
activesupport (3.0.3)
acts_as_list (0.1.2)
annotate-models (1.0.4)
arel (2.0.9)
authlogic (2.1.6)
activesupport
builder (2.1.2)
declarative_authorization (0.5.2)
diff-lcs (1.1.2)
erubis (2.6.6)
abstract (>= 1.0.0)
i18n (0.5.0)
i18n_routing (0.4.7)
i18n (> 0.3.5)
mail (2.2.15)
activesupport (>= 2.3.6)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
nested_set (1.6.4)
activerecord (>= 3.0.0)
railties (>= 3.0.0)
pg (0.10.1)
polyglot (0.3.1)
rack (1.2.2)
rack-mount (0.6.14)
rack (>= 1.0.0)
rack-test (0.5.7)
rack (>= 1.0)
rails (3.0.3)
actionmailer (= 3.0.3)
actionpack (= 3.0.3)
activerecord (= 3.0.3)
activeresource (= 3.0.3)
activesupport (= 3.0.3)
bundler (~> 1.0)
railties (= 3.0.3)
railties (3.0.3)
actionpack (= 3.0.3)
activesupport (= 3.0.3)
rake (>= 0.8.7)
thor (~> 0.14.4)
rake (0.8.7)
rspec (2.0.1)
rspec-core (~> 2.0.1)
rspec-expectations (~> 2.0.1)
rspec-mocks (~> 2.0.1)
rspec-core (2.0.1)
rspec-expectations (2.0.1)
diff-lcs (>= 1.1.2)
rspec-mocks (2.0.1)
rspec-core (~> 2.0.1)
rspec-expectations (~> 2.0.1)
rspec-rails (2.0.1)
rspec (~> 2.0.0)
ruby_parser (2.0.6)
sexp_processor (~> 3.0)
rubycas-client (2.2.1)
activesupport
sexp_processor (3.0.5)
thor (0.14.6)
treetop (1.4.9)
polyglot (>= 0.3.1)
tzinfo (0.3.26)

PLATFORMS
ruby

DEPENDENCIES
acts_as_list
annotate-models
authlogic
declarative_authorization
i18n_routing
nested_set
pg (= 0.10.1)
rails (= 3.0.3)
rspec (= 2.0.1)
rspec-rails (= 2.0.1)
ruby_parser
rubycas-client[/code]

Kurde no, nie wierzę. Pokaż stack trace. Identyczny, undefined method acts_as_nested_set?

Jak zwykle zapomniałem zresetować serwera, troche dziwne to bo w niektórych sytuacjach już wiem że trzeba resetować serwer, ale jest jeszcze mnóstwo sytuacji które mnie zaskakuje.