Rails сам по себе не содержит ошибок.Я не был свидетелем ошибки в самой структуре в течение некоторого времени, пока я не дублировал открытые заявки.
Там, где проблемы, с которыми вы столкнулись, возникли в нескольких различных областях:
Мы перешли как сообщество из Ruby 1.8.x в1.9 за последний год или около того, и некоторые драгоценные камни предъявляют особые требования к версии Ruby, которые необходимо проверить перед их использованием.Большинство наиболее популярных драгоценных камней прекрасно подходят и протестированы для работы в разных средах.Сначала прочтите документы.
Сам Rails значительно вырос в последние годы, и это означает, что многие функции устарели.Множество плагинов было написано для более старой версии фреймворка и ожидает поведение, которое просто больше не действует.Сначала прочитайте документы.
В настоящее время доступно несколько различных интерпретаторов Ruby (что замечательно), но иногда может оказывать влияние, когда дело касается стороннихкод, но это редко.По сути, некоторые гемы и плагины ожидают, что будет запущен на конкретном интерпретаторе.Ни один из действительно популярных не похож на этот, но вы должны знать, что некоторые строители драгоценных камней - идиоты.Сначала прочитайте документы.
Вы можете заметить, что в конце каждого пункта есть общая тема: сначала прочитайте документы.: -)
Я бы сказал, что ваш опыт совсем не типичен для большинства рабочих процессов разработчиков Rails, хотя время от времени у всех нас был день борьбы.
Вы быстро узнаете, каким драгоценным камням доверять, какие вам понадобятся, но могут время от времени бороться с ними (mysql - сборка, которая убивает меня в OS X каждый раз), и какие из них следует избегать.
В целом цикл разработки более плавный (и вы будете развиваться быстрее) с Rails, как только вы освоитесь и примете хорошую практику.Однако есть причина, по которой нам всем нравятся TDD и BDD - если это не поможет, мы сможем пройти через обновление гемов, зная, что все работает, когда разработчик, которого мы не знаем, сделал что-то идиотское.: -)