Ruby on Rails Gon Gem против куки или обычный запрос AJAX

Я уже некоторое время программирую на Ruby on Rails, и чтобы иметь возможность легко получать доступ к данным с моих контроллеров в моем коде javascript, я как новичок натолкнулся на Gon Gem. Это решает проблему довольно просто, но немного загадочно для начинающего RoR, если честно.

Погружаясь в исходный код драгоценного камня, я теперь понимаю, как он работает: переменные, которые вы спрашиваете gon чтобы перейти к вашему JS отслеживаются драгоценным камнем и вставляется в <script /> тег на вашем представлении, представленный erb тег

<%= Gon::Base.render_data %>

что делает gon объект доступен через ваш JS, так как он внедряет его как window имущество.

Мой вопрос, насколько это полезно для практики? Откровенно говоря, кажется немного сложным динамически внедрять код JS в сайт, чтобы получить доступ к некоторым данным с сервера в браузере. Не лучше ли было бы

  • просто сделать данные доступными через конечную точку на стороне сервера RoR и вызов AJAX из внешнего интерфейса JS?

или же

  • установить необходимые данные в cookie во время соответствующего действия на контроллере RoR и просто прочитать их из JS?

1 ответ

Мех.

Это вопрос того, сколько вызовов вы хотите, насколько велики ваши данные, сколько функций gon вы хотите использовать (обновления и т. д.). Есть много неправильных способов сделать что-то. Есть несколько правильных способов. gon отлично подходит для некоторых случаев использования, особенно для приложений, которые переходят с HTML на интенсивное использование JS.

Другие вопросы по тегам