@pechorin_andrey за наводку и за ссылку на эту статью: blog.plataformatec.com.br
Все. Окончательно определился с тем, какой инструмент буду изучать и использовать в дальнейшем для генерации форм в рельсах. Определенно выбор пал на SimpleForm 2.0. В отличии от обычных форм — нет геммороя по написанию огромного количества кода для bootstrap верстки форм. И в отличии от Formtastic они имеют интегрированную поддержку изнутри. Плюс, это от разработчиков Devise, а именно это творение Plataformatec. Спасибо
github.com Код там не шибко красив и изящен, писал уже в запарке и со сдающими нервами, но если хочется красоты — можно и привести к нормальному виду. Проверял на сложной форме, с макс. уровнем вложенности 4, и с кучей подформ. Работает. (: Если кто найдет баги, отписывайтесь. Тестировал на Ruby 3.2.2
Буквально, наверное вчера, пофиксил досадную ошибку в nested_form. Ошибка благо не в Ruby части, а всего лишь в JS (честно говоря, я уже много и других патчей немного для других ошибок пробовал), но на данный момент ошибка коварная. Заключается она в ошибочном алгоритме обработки родителя и индекса. То есть, при использовании nested_form, на любом уровне вложенности может быть связь как has_one, так и has_many. При этом, во втором случае, при генерации name элемента после attributes ставится [index] элемента. А при has_one — нет! Из-за этого возникала ошибка parse && replace имен и id элементов. Форк с исправлением тут:
42conf.com Верстка полностью построенна на Twitter Bootstrap. Кто видел его ванильную мордашку, но не видел сильно модифицированных примеров (к примеру я таких видел пару штук, и то ссылки похерил, ибо не вовремя на глаза попались), тот может и удивиться.
Для знающих, и интересующихся, предлагаю взглянуть на структуру главного меню, на id и class, которые используются, а также к примеру зайти сбда: 42conf.com Внимательные, могут увидеть, и кусочек истинной ванильной сущности Bootstrap (а именно class='alert alert-info').
Вот такие дела, так что, это один из ярких примеров, что инструменты подобно Twitter Bootstrap нужно уметь готовить и применять, совершенно не боясь, что он выглядит по одному, а дизайн у приложения совершенно другой.
Кстати. О технологиях. Я ведь, вроде как давно и активно и с любовью продвигаю рельсы и Twitter Bootstrap. Первое ладно, и у каждого бэкэндщика свое мнение сложилось. А вот Bootstrap. Реально, мне пока мало доводилось видеть сайтов, на которых можно демонстративно показать, что Bootstrap, это не просто какой-то набор готовых виджетов, а действительно мощный фреймворк, который вовсе не связывает руки. Вот пример: Для знающих, и интересующихся, предлагаю взглянуть на структуру главного меню, на id и class, которые используются, а также к примеру зайти сбда: 42conf.com Внимательные, могут увидеть, и кусочек истинной ванильной сущности Bootstrap (а именно class='alert alert-info').
Вот такие дела, так что, это один из ярких примеров, что инструменты подобно Twitter Bootstrap нужно уметь готовить и применять, совершенно не боясь, что он выглядит по одному, а дизайн у приложения совершенно другой.
Собственно, тикет (которому уже 10 месяцев, с парой решений и патчей, но не из репозитория):
Лично же я столкнулся с ней немного в другом виде. Есть плагин devise_invitable. И так получилось, что у модели User есть подчиненная модель Profile, которую желательно и заполнять прямо на этой же странице. Имеется модель Link. И есть такой код, очень так размыто, но все же: gist.github.com
Код очень такой примерный.
Структура верстки формы, примерно такая: gist.github.com
Она очень урезана, но позволяет показать, то, что у меня имеется. Весь смысл в том, что не смотря на то, что казалось бы есть внешние и внутренние формы для ссылок, nested_form не умеет их корректно обрабатывать. Не сработал метод, и переименования связи, с явным указанием class_name: 'Link'
Такие дела.
1) ERB в топку, ибо мне хватило и Underscore Template и Django Template. Открывание и закрывание всяческих тегов занимает огромное количество времени, и раздражает неимоверно.
2) Посмотрев на Slim еще раз, после долгого времени без HAML и Rails — все равно не увидел преимуществ. Ну да, более Ruby приближенный, так как избавились от скобочек у параметров, и % перед тегом. Это отчасти удобно, но я хотя бы вижу этот % и вижу сразу — тег, а не просто ключевое слово. Очень сильная должна быть ставка на подстветку синтаксиса и соответствия спецификации в случае Slim.
3) А скорость. Да хрен со скоростью же. Стоимость человекочаса дороже, чем стоимость машиночаса. Да и тормоза же не от шаблона по большей части, а от Ruby, и... И вспомним, что у нас еще вложенные подшаблоны, партиалы и прочее — это скорости не добавляет, и в принципе уравнивает все три конкурента.
В итоге: мой выбор HAML!
Вот сейчас подход Rails опробую для прикручивания его к нашему JS приложению на базе backbone.js. Довольно так прозрачненько ложится, учитывая еще и то, что возможно из этой базы в дальнейшем будет извлекаться свой "домашний" фреймворк, оно кажется самое то )
@classmethod'ы, только как методы ObjectManager'а. >_< Это не рельсовая ActiveRecord, где scope'ы и работа с коллекцией идет через методы класса. Это Django ORM, где такие задачи решаются через ObjectManager, и должны быть доступны по Model.objects.your_method. >_<
Никогда, сука, не пиши scope и методы коллекций как
slideshare.net Есть мнение, что это полезно не только тем, кто разрабатывает тяжелые приложения на Rails, но и разработчикам на Django. Естественно это не ниша интернет магазинов, а более тяжеловесных приложений, но плох тот солдат, который генералом стать не хочет )
Прошла конференция RailsClub, но как рассказали, организаторам не предоставили камеру с оператором, так что видео можно не искать. Зато Макс Лапшин подкинул презентацию со своего доклада (а как известно, он не только великолепный джедай рельсов, но уже и джедай Erlang). Ничего особенно подробного в самой презентации нет, но она самодостаточна и отлично передает те мысли, о которых и рассказывал автор на конференции. В общем о чем это я... Вот ссылка для просмотра:
twitpic.com Вот так вот Злые Марсиане выкатывают новые версии на PRODUCTION. Однако технологично и оригинально. )))
saas-class.org — лекции по разработке Long Live SaaS Service на примере использования Ruby On Rails и связанных методиках. Короче, тем кому интересен high load и рельсы (второе не обязательно) — это для вас.
Вышли лекции из Стенфорда, доступные онлайн.