Tag: Ruby

Rails3 i routes.rb – rozbicie (rozłożenie) na kilka plików

Wraz z rozrostem naszej aplikacji, zaczynają pojawiać się w niej przestrzenie nazw/moduły (namespaces). Dzięki takiemu podziałowi możemy zachować logikę w aplikacji dzieląc ją (przykład) np. na:

  • api
  • admin
  • dev

Wygodnie byłoby móc odwzorować taki podział także na pliku routes.rb, który niestety z czasem będzie rósł coraz bardziej. Aby temu zapobiec (i zapanować nad ew. rozrostem), warto rozdzielić plik routes.rb. Jak tego dokonać? Wystarczy utworzyć sobie katalog config/routes w nim utworzyć swoją herarchię plików (może być zagnieżdzona w subkatalogach). Następnie należy dodać poniższe linijki do pliku config/application.rb:

    # Ładuj wszystkie routy z katalogu config/routes
    Dir["#{Rails.root}/config/routes/**/*.rb"].each do |route_file|
      config.paths.config.routes << route_file
    end

Powyższy kod przeszukuje rekurencyjnie katalog z routsami i załącza te na które natrafi.

RVM i no such file to load — openssl | no such file to load — readline

Instalując poprzez RVMa kolejne wersje Rubiego, natknąć możemy się na taki oto komunikat:

no such file to load -- openssl

Informacja ta wyskakuje kiedy skompilowaliśmy naszego Rubiego bez OpenSSLa. Aby temu zaradzić wystarczy:

cd ~/.rvm/src/ruby-1.9.2-p0/ext/openssl
ruby extconf.rb
make
make install

Podobna procedura tyczy się także w wypadku takiego komunikatu:

no such file to load -- readline

Jedyna różnica jest taka, że musimy zainstalować wcześniej dwa pakiety:

    sudo apt-get install libncurses5-dev libreadline5-dev
    cd ~/.rvm/src/ruby-1.9.2-p0/ext/readline
    ruby extconf.rb
    make
    make install

UPDATE

Hipertracker podał prostsze rozwiązanie:

rvm package install readline
rvm package install openssl
rvm remove 1.9.2
rvm install 1.9.2 –with-readline-dir=$rvm_path/usr –with-openssl-dir=$HOME/.rvm/usr

Aczkolwiek i tak wolę mój sposób - trwa krócej ;)

Copyright © 2026 Closer to Code

Theme by Anders NorenUp ↑