ActionController::RoutingError (No route matches [GET] “/assets/logo.png”)…

Opublikowano: 06.12.2011 | Kategoria: Programowanie | Tagi: , | Brak komentarzy »

Ruby on Rails 3.1 z Assets Pipeline i SASS – dla mnie super sprawa. Niestety po update Rails do wersji 3.1.3 i jednoczesnej przesiadce na Ruby 1.9.3 natrafiłem na niespodziewany błąd (ostatecznie, to nie zmiana ich wersji była przyczyną, o czym dalej).

W plikach styli z rozszerzeniem .css.scss używałem linków to obrazków zgodnie z metodą proponowaną przez gem sass-rails: image-url('logo.png') (plik znajdował się oczywiście w odpowiednim katalogu railsapp/app/assets/images/logo.png). Grafika deklarowana w stylach przestała się pojawiać na developmencie, więc na szybko zmieniłem sass-owe image-url na css-owe url. Po wgraniu aplikacji na produkcję i wykonaniu bundle exec rake assets:precompile niestety zamiast obrazków zaczął pojawiać się w logach błąd: ActionController::RoutingError (No route matches [GET] “/assets/logo.png”).

Po kilkunastu próbach znalezienia rozwiązania, winnym okazał się gem Compass, który powodował konflikt z sass-owym image-url zmieniający /assets/logo.png (prawidłowy url) na /images/logo.png (nieprawidłowy).

Pomógł update compass do najnowszej wersji z GitHub i powrót do sass-railsowej składni.


MySQL socket i PHP PDO na Snow Leopard

Opublikowano: 31.08.2011 | Kategoria: Apple, Programowanie | Tagi: , | Brak komentarzy »

Wykorzystując w aplikacjach PHP rozszerzenie PDO MySQL, irytujący błąd SQLSTATE[HY000] [2002] No such file or directory,
można szybko załatwić poprzez zmianę domyślnej ścieżki do socketa w /etc/php.ini:

pdo_mysql.default_socket=/tmp/mysql.sock

i restart apache poleceniem sudo apachectl -k restart.


Rails 3.1beta1 – undefined method `context`

Opublikowano: 19.05.2011 | Kategoria: Programowanie | Tagi: | Brak komentarzy »

Jeżęli wersja beta 1 Ruby on Rails wywala się Wam z podobnym błędem:

/.rvm/gems/ruby-1.9.2-p180@railspre/gems/actionpack-3.1.0.beta1/lib/sprockets/railtie.rb:37:in
`block (2 levels) in ': undefined method `context' for # (NoMethodError)

to znak, że macie zbyt nową wersję sprockets.

Sprawę załatwiamy dodająć do Gemfile:

gem 'sprockets', '2.0.0.beta.2'

i wywołując w konsoli komendę:

bundle update sprockets

Zdalne prywatne repozytorium Git z dostępem po SSH

Opublikowano: 31.03.2011 | Kategoria: Programowanie | Tagi: | Brak komentarzy »

1. Tworzymy repozytorium bare na podstawie katalogu z aktualnym repozytorium roboczym:

cd /home/user/project_code
git clone --bare /home/user/project_code/.git /tmp/project_code.git

2. Pchamy repozytorium scp na serwer docelowy:

scp -r /tmp/project_code.git username@mojserwer.com:/home/username/git_repos/project_code.git

3. Dajemy znać lokalnemu repozytorium, że dodaliśmy zdalne repozytorium “origin”:

git remote add origin username@mojserwer.com:/home/username/git_repos/project_code.git

4. Jak chcemy wypchnąć zmiany na serwer, korzystamy z polecenia:

git push origin

Czy mam WebSocket w mojej przeglądarce?

Opublikowano: 20.06.2010 | Kategoria: Programowanie | Tagi: | 3 komentarze »

A oto prosty JavaScript sprawdzający, czy nasza przeglądarka obsługuje WebSocket.

<html>
<body>
<script type="text/javascript">
if ("WebSocket" in window) alert("Przegladarka obsluguje WebSocket");
else alert("Przegladarka nie obsluguje WebSocket");
</script>
</body>
</html>

Test WebSocket w różnych przeglądarkach na Snow Leopardzie:

Firefox 3.6.6 – nie działa
Opera 10.53 – nie działa
Chrome 5.0.375.70 – działa
Safari 5.0 (6533.16) – działa