Антон Мисягин:
= f.simple_fields_for @category, @details do |f|
= f.simple_fields_for @category do |f|
= f.simple_fields_for @details do |f|
И это всё неправильно. Должно быть = f.simple_fields_for :detail, @category.detail do |f| если Category has_one :detail
Это единственная причина, как мне видится, которая здесь может быть, так как 20 инпутов это слишком мало, чтобы рендер начал тормозить.
Антон Мисягин: То есть один только этот паршиал рендерится 2700 мс? А вся остальная часть вьюхи — другие 2700?
Если удалить часть чекбоксов, то сколько времени будет рендериться? А если вообще убрать чекбоксы, оставить только голую форму? А если саму форму убрать, оставить паршиал без формы?
@category, @details — ещё вот это меня смущает. Тут нужно первым параметром передавать название ассоциации, а вторым — объект модели apidock.com/rails/ActionView/Helpers/FormHelper/fi...
OnYourLips: Проблемы у людей с turbolinks тоже сразу возникают.
"эффект виден сразу" — не значит, что оптимизация была необходимой. Любой код можно оптимизировать бесконечно долго, только незачем.
O Di: это все-равно левый стайлгайд, потому что они советует всякие глупости. Нужно своей головой думать, а не слепо верить в то, что кто-то что-то там пишет (на заборе тоже многое пишут). В конце концов, в каждой компании свои правила оформления кода. И что, ты будешь им рассказывать, что там "на самом github'е"? Я знаю как минимум ещё один момент, из-за которого у тебя будут проблемы, если твой код, написанный по стайлгайду "самого github'а" будет проверять Хаунд (который чаще всего и используется для автоматической проверки кода).
В своем ответе я говорил про то, что в версии руби 1.9 появился новый синтаксис для хешей с ключами-символами, и большинство стало им пользоваться. И по этому признаку можно определять, старый код или новый. Кто хочет, может использовать и старый синтаксис — его дело.
Max: home_controller.js.cofee.js – вы что, coffee-файл подключали? (звук шлепка ладони о лоб)
В общем, учись студент. Ничем помочь я тут больше не могу.
Max: Если бы вы отлично представляли, что делаете, то вопроса бы не было. Если бы вы отлично представляли, что делаете, то знали бы, как проверить, что всё настроено правильно. Подключен ли вообще ангуляр? Настроен ли он для работы с контроллерами, созданными через обычные функции (а не через angular.controller)? Подключен ли home_controller.js? Какие ошибки выводятся в js-консоли?
Сразу видно, что человек не писал чего-то сложного на рубях и РоР. Рельсы дают готовыми только базовые рутинные вещи (framework с англ. — каркас), которые нет смысла постоянно писать руками. Даже в средних по размеру приложения уже есть куча бизнес-логики, написание которой фреймворк никак не упрощает.
А в JS царит полная анархия — делай, что хочешь и как хочешь. Собственно поэтому он и привлекает массы. Не думай ни о чем, просто фигачь код: на фронтэнд, на бэкэнд, на кофеварку.
P.S.
Видели мы программистов с гибким мышлением. Спасибо, не надо нам больше таких креативщиков.
category_attributes: [:id, :name]) — id здесь не нужен, так как мы его не передает из формы. Он назначается при создании.
@category = ITem.create_category(params[:category]) — отдельно создавать вложенные модели не нужно, они создадутся вместе с главной
И проверьте ещё логи, там должно быть написано, если какие-то атрибуты не проходят фильтр.
А не может быть проблемы из-за того, что вы смешиваете mongoid и mongomapper? Судя по документации, mongoid поддерживает вложенные атрибуты. А mongo_mapper-accepts_nested_attributes не обновлялся с 2011 года.
Антон Мисягин: а я разве где-то говорил, что оно не для simple_form? Вы его даже не проверили, а уже начали со мной спорить. Смысл-то тогда вам помогать?
Evsign: все люди разные, и гики-технари тоже разные. В конце концов, "гик" — это просто стереотип, который размывает индивидуальные особенности людей. Кто-то может неделями читать сухую теорию, не теряя интереса, а потом успешно её применять на практике, а кому-то нужно с самого начала совмещать практику и теорию. Или даже вообще в начале брать минимум теории, а больше практики.
Программист сегодня может быть кем угодно: может быть богом математики, а может ничего в ней не смыслить, может вообще плохо знать теорию, но вполне приемлемо писать программы, а может быть замороченным на теории и на том, как правильно надо писать код, но при этом малопродуктивным. Программирование изменилось, интернет изменился. Компьютеры стали более социальными и доступным, и, как следствие этого, в IT стало приходить всё больше и больше "не гиков". Времена перфокарт, ассемблера и модемов прошли.
= f.simple_fields_for @category, @details do |f|
= f.simple_fields_for @category do |f|
= f.simple_fields_for @details do |f|
И это всё неправильно. Должно быть = f.simple_fields_for :detail, @category.detail do |f| если Category has_one :detail
Это единственная причина, как мне видится, которая здесь может быть, так как 20 инпутов это слишком мало, чтобы рендер начал тормозить.