2011-07-09 10 views
8

Jestem ciekawy alternatyw dla komponentów RoR lub RoR.Alternatywy dla Ruby on Rails i/lub ich komponentów

Niektóre badania przyniosły ORM alternatives to ActiveRecord tutaj na SO.

Więc pozostała jest pytanie o alternatywy dla ...

  1. ... kontrolery (ActiveController)
  2. ... widoki (ActiveView)
  3. ... RoR sama
  4. ... każdy inny element, którego tu brakuje: D

Naprawdę, jestem bardzo szczęśliwy z nimi wszystkimi, ale pytam z czystej ciekawości.

+0

Istnieje klejnot o nazwie 'InheritedResources' (https://github.com/openteam/inherited_resources). To rozszerzenie ActiveController i wygląda całkiem nieźle. – bassneck

Odpowiedz

19

Zamiast ActiveRecord istnieje kilka opcji do wyboru. Największym konkurentem (i moim ulubionym) wydaje się być DataMapper, następnie jest Sequel, Mongoid, MongoMapper. Jest też mnóstwo innych, ale są to stosunkowo duże podmioty.

Zamiast ActionView (nie Active ... Action ... mylące, wiem), nie natknąłem się na nic. Widziałem wiele dodatków do niego, ale żadnych kompletnych zamienników. Myślę, że to oznacza, że ​​ludzie są zadowoleni z ActionView. Teraz dostępne są jednak inne silniki szablonów. Wielkim graczem jest tutaj HAML. Używanie HAML nie oznacza, że ​​nie korzystasz z ActionView. Wciąż używasz ActionView, tylko z innym pre-procesorem szablonu.

Alternatywy dla samego RoR. Znowu jest ich kilka. Wielcy gracze to Sinatra, Merb (który rozpoczął się we wczesnych dniach Railsowych przez niektórych ludzi, którzy nie zgadzali się z rzeczą lub dwie w Railsach, a następnie Rails nauczył się kilku rzeczy i wziął kilka bitów z powrotem ... mylące!) . Jest też Ramaze, ale nie wiem zbyt wiele na ten temat.

Chodzi o to, że Rails jest mniej lub bardziej bezkonkurencyjny w tym, co robi. Jeśli dostaniesz w swoje ręce aplikację napisaną w języku Ruby, prawdopodobnie będzie to aplikacja Rails lub aplikacja Sinatra. Sinatra spełnia inną potrzebę Rails. Rails chce zapewnić Ci cały szereg narzędzi, aby szybko załatwić sprawy, a głównym celem Sinatry jest być lekkim i trzymać się z daleka. Railsy są ogromne, a Sinatra w zasadzie sprowadza gloryfikowaną mapę trasy/dyspozytora (mam na myśli to w dobry sposób), pozwalając ci zbudować twoją aplikację internetową, jakkolwiek ci się podoba. Sinatra ułatwia np. Pakowanie małego narzędzia do administrowania stronami internetowymi wewnątrz klejnotu. Prawdopodobnie nie chciałbyś dołączyć aplikacji Rails do klejnotu. To byłaby przesada.

Pod względem "innych komponentów", najważniejszą rzeczą (choć nie jest to rzecz Railsów), która przychodzi na myśl, jest Test :: Unit. Podczas gdy Railsy są dostarczane z Test :: Unit i nie ograniczają cię do używania czegoś innego, warto wspomnieć, że są dostępne inne frameworki testowe. RSpec to inny duży gracz tutaj, i jest też ZenTest. Możesz również spojrzeć na Shoulda, który jest dodatkiem, czymś więcej niż alternatywą.

+0

Dziękuję za tę odpowiedź, poczekam dzień lub dwa przed przyjęciem, ale to jest kandydat! Dlaczego nie akceptuję teraz? Wiele osób nie czyta pytań z zaakceptowanymi odpowiedziami, które słyszałem, ale chcę, aby pytanie było żywe przez dzień lub dwa. – NobbZ