Май 4, 2006
Заметки об установке Ruby on Rails
Да, можно сказать, я тоже поддался общей волне Ruby-on-Rails-мании и взялся за установку этого чуда у себя на компе. Пока что всего навсего под Windows, ну авось и до Линукса руки как-нибудь дойдут..
В общем наверное и говорить было бы не о чем, т.к. из прочтения парочки мануалов, становится понятным что установка Ruby on Rails - дело плевое, но мне как всегда повезло больше других в плане сбора грабель при установке, поэтому решил поделиться своим опытом, может кому-то это сбережет пару часов времени и некоторое количество нервов.
Итак, пара ссылок для начала:
Зачем то еще стал разбираться с настройкой Апача и FastCGI под Windows, как оказалось потом, у Rails есть замечательный встроенный сервер WEBrick, который запускается одной cтрочкой: “ruby script/server”
Впрочем, с апачем было меньше всего проблем, после установки Ruby For Apache и прописывания виртуалхоста, все вроде бы даже заработало.
Дальше, конечно, интересней.
Я решил следовать указаниям из Four Days on Rails, и смело набрал в консоли команду “gem install rails --version 0.12.1“, хотя вообще номер версии должен был смутить.
Потом я конечно исправился, поставил свежии версии gem-ов, но старые удалить забыл, и видимо из-за этого в основном грабли и поймал.
Продолжая делать все по инструкции, при попытке запустить первый пример из Four Days on Rails, неизменно упирался в ошибку “uninitialized constant Mysql“.
Google по этому вопросу выдал массу ссылок, но полезных из них не оказалось.
После этого я решил, что с мускулем видимо не судьба, и взялся за Postgres.
Кстати, когда тебе дают интерфейс к установке расширений типа “gem install что-то-там“, возникает искушение писать тупо “gem install postgres” и ожидать счастья. Не поддавайтесь ему, к примеру под виндой чтобы не иметь геморроя с компиляцией чего-то там, а мы просто хотим, чтоб все заработало, надо ставить postgres-pr, а не postgres. C mysql похожая ситуация - там из списка надо выбрать версию пакета с “mswin32″ на конце.
В общем в итоге с постгресом тоже как-то сразу не сложилось, он выдал ошибку при выполнении следующего запроса:
SELECT a.attname,
format_type(a.atttypid, a.atttypmod),
d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = 'categories'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;
, еще больше подорвав мое доверие к Ruby on Rails.
Но я решил упереться, и завести таки рабочий пример хотя бы под одной базой.
Самым простым вариантом оказался SQLite, про который я раньше что-то где-то слышал, но работать с ним не доводилось. Загрузка бинарников размером чуть больше 300 кб с sqlite.org, “gem install sqlite3-ruby“, создание простенькой таблицы, и, о чудо, наконец-то этот тупой пример со scaffold заработал:

Ну а что с Postgres и Mysql, спросите вы?
Да ничего страшного, для постгреса в config/database.yml я прописал schema_search_path: test, а саму схему забыл создать и из-за этого он и выдавал ошибку.
А для мускуля пришлось ручками вычистить все старые установленные gems, и установить заново последние activerecord***.gem и mysql***mswin32.gem, после чего он тоже заработал.
Вот пожалуй и все, напоследок еще несколько ссылок для начинающих, а я пошел дальше разбираться с Rails.

Привет!
вот здесь еще можно найти информацию по установке Rails (на русском):
http://ror2ru.elementalcms.org/index.php?n=Main.RailsStartManual
http://ror2ru.elementalcms.org/index.php?n=Main.RailsStartSqlite
Комментарий от nemilya — Май 4, 2006 @ 17:05