#ruby-on-rails #ruby #plugins
#ruby-on-rails #ruby #Плагины
Вопрос:
Есть ли какие-либо дополнения / плагины / и т.д., На которые я должен взглянуть перед запуском нового проекта, помимо RSpec? Я собираюсь делать довольно тяжелое ajax / интерактивное веб-приложение. Вероятно, к тому времени, когда я закончу, в нем будет 60 моделей.
Я просто ищу указания относительно того, что люди обычно используют в rails в наши дни, что экономит время, делает ваш код более чистым и т.д.
Некоторые более конкретные вещи:
- поддерживайте разные роли пользователей / привилегии, не привязывая себя к конкретным базовым классам, потому что возможно, что роли могут быть общими (в основном, это больше похоже на систему, основанную на привилегиях, чем на наличие подклассов для каждого типа пользователя).
- Поступает множество запросов и результатов в формате json — не так много от веб-программирования в стиле старой школы.
- темы
- ввод пароля / шифрование
- динамические макеты, основанные на привилегиях
- публичные / приватные разделы сайта
- много css / js
- загрузка файлов и изображений. Может быть, хранение / управление изображениями — это другое дело, или я должен просто поместить их в базу данных в эти дни?
- редактирование тегов
- автоматическое позиционирование записей при вставке / обновлении (я подумал, что просто закодирую это сам, но я все равно выкину это там)
- выгруженные результаты
- отправка электронных писем
- функциональность, подобная cron, для выполнения сервисов (рассылка еженедельных информационных бюллетеней, удаление неиспользуемых учетных записей пользователей, удаление неиспользуемых изображений на диске и т.д.)
Я задаю эти вопросы, потому что я закоренелый Java-программист, только начинающий работать с Ruby
Комментарии:
1. 60 моделей — это довольно много для большинства приложений. Моя первая мысль заключается в том, что многие из этих моделей, вероятно, будут иметь много общего и могут быть учтены. Если в схеме для каждого из них есть незначительные различия, то вы могли бы либо сериализовать отличающиеся поля (хотя вы потеряете возможность запрашивать их), либо рассмотреть БД без схемы.
2. На самом деле я переписываю приложение, поэтому я уже знаю схему. Мало что можно сделать, чтобы учесть это. Однако, возможно, использование Mongodb или чего-то еще было бы хорошим вариантом, но, честно говоря, я мало что знаю о базах данных nosql.
3. Возможно, вы захотите ознакомиться ruby-toolbox.com который предоставляет список популярных драгоценных камней, разбитых на категории.
4. Я проверю этот веб-сайт. Возможно, это тот ответ, который я хотел 😉
Ответ №1:
Зависит от объема вашего проекта. Однако «общий» может отличаться от разработчика к разработчику. Мой общий список драгоценных камней включает:
- Разработать для аутентификации. Альтернатива: Authlogic
- Cancan для пользовательских ролей.
- Carrierwave для загрузок. Какая-нибудь альтернатива: скрепка, стрекоза
- Каминари для разбивки на страницы. Альтернатива: Will_paginate
- Friendly_id для красивых URL-адресов.
Приведенный выше список — это личные предпочтения. Любые другие драгоценные камни, о которых я могу подумать, могут быть более подходящими для конкретных / не общих областей проекта.
Надеюсь, это поможет!
Комментарии:
1. У вас обоих, ребята, есть отличные ответы. Я не знаю, кого выбрать.
Ответ №2:
Это очень, очень сильно зависит от того, что вы делаете. Devise и Authlogic хороши для аутентификации, Paperclip для вложений файлов, Factory Girl для тестовых данных, SCSS для улучшенной обработки CSS… их так много. Какое приложение вы создаете и каких задач вы ожидаете? Больше информации облегчит внесение предложений.
Отредактировано на основе ваших комментариев: Я бы порекомендовал Devise для аутентификации пользователя, он будет обрабатывать посолку и все остальное, и он почти безмозглый в использовании. Для загрузки файлов и изображений используйте скрепку. Что касается тегов, ознакомьтесь с плагином jQuery Token Fields.
Комментарии:
1. Мне нужно поддерживать разные роли пользователей / привилегии, не привязывая себя к конкретным базовым классам, потому что возможно, что роли могут быть общими (в основном, это больше похоже на систему, основанную на привилегиях, чем на наличие подклассов для каждого типа пользователя). Поступает множество запросов и результатов в формате json — не так много от веб-программирования в стиле старой школы. Мне нужно будет поддерживать темы, изменение пароля, динамические макеты на основе привилегий, общедоступные / приватные разделы сайта, множество css / js, загрузку файлов и изображений, разметку… что-нибудь еще?
2. Некоторые другие вещи: автоматическое позиционирование записей при вставке / обновлении (я подумал, что просто закодирую это сам, но я все равно выкину это туда), выгружаемые результаты, отправка электронных писем, cron-подобная функциональность для выполнения сервисов (рассылка еженедельных информационных бюллетеней, удаление неиспользуемых учетных записей пользователей, удаление неиспользуемых изображений на диске и т.д.). Может быть, хранение / управление изображениями — это другое дело, или я должен просто поместить их в базу данных в эти дни?