Teraz, gdy beta Rails 3 jest już dostępna, pomyślałem, że przyjrzę się przepisaniu aplikacji, nad którą właśnie zacząłem pracować, w wersji beta Rails 3, zarówno po to, aby ją poczuć i uzyskać trochę przewagi. Aplikacja korzysta z MongoDB i MongoMapper dla wszystkich swoich modeli i dlatego nie ma potrzeby korzystania z ActiveRecord. W poprzedniej wersji wyładowuję activerecord w następujący sposób:
config.frameworks -= [ :active_record ] # inside environment.rb
W najnowszej wersji to nie działa - po prostu wyrzuca błąd:
/Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta/lib/rails/configuration.rb:126:in
`frameworks': config.frameworks in no longer supported. See the generated
config/boot.rb for steps on how to limit the frameworks that will be loaded
(RuntimeError)
from *snip*
Oczywiście spojrzałem na boot.rb tak, jak sugerował, ale z tego co widzę, nie ma tu żadnej wskazówki, jak mogę zabrać się do wyładowania AR. Powodem, dla którego muszę to zrobić, jest to, że nie tylko głupie jest ładowanie czegoś, czego nie chcę, ale narzeka na niemożność nawiązania połączenia DB, nawet gdy próbuję uruchomić generator dla kontrolera. Dzieje się tak, ponieważ wyczyściłem database.yml
i zastąpiłem go szczegółami połączenia dla MongoDB, aby wykorzystać tę istotę do korzystania z database.yml dla szczegółów połączenia MongoDB. Nie jestem pewien, dlaczego w ogóle musi być w stanie zainicjować połączenie DB, aby i tak wygenerować kontroler ...
Czy ktoś wie, jak to zrobić w Railsach 3?
źródło
require "sprockets/railtie"
w swoimapplication.rb
pliku.--skip-active-record
. Zwróć uwagę na dodatkową kreskę.Szyny 4
Szukałem, jak to wyłączyć w szynach 4 i znalazłem tylko tę odpowiedź, która już nie działa na szynach 4. Tak więc można to zrobić na szynach 4 (testowane w RC1).
W nowym projekcie
W istniejącym projekcie
gem 'sqlite3'
Lubgem 'pg'
.W config / environment.rb, wymienić
require 'rails/all'
zW config / environment / development.rb usuń lub zakomentuj
config.active_record.migration_error = :page_load
Potencjalnie musisz usunąć pomocników active_record z spec_helper (przez VenoM w komentarzach)
Potencjalnie musisz usunąć oprogramowanie pośredniczące ConnectionManagement (wydaje się, że tak jest w przypadku jednorożca):
config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
(przez https://stackoverflow.com/a/18087332/764342 )Mam nadzieję, że pomoże to innym szukającym sposobu wyłączenia ActiveRecord w Railsach 4.
źródło
W przypadku nowej aplikacji railsowej można ją wykluczyć aktywny rekord, określając parametr --skip-active-record. Na przykład:
źródło
Jeśli wygenerowałeś nowy projekt przy użyciu Rails 3.2, będziesz musiał również skomentować:
i
w pliku development.rb .
źródło
Wszystko powyżej jest prawdą. Jeszcze jedna rzecz, którą musiałem zrobić w szynach 3.1 to skomentowanie
w
config/application.rb
.źródło
Jeśli używasz rspec, musisz również usunąć (w spec_helper):
i usuń
źródło
Również skomentować out
(zapisane na szynach 3.2.13)
źródło