Разрешить пользователю настраивать приложение Rails для первого использования (ActiveRecord и т. Д.)
Перед тем, как начать процесс создания чего-либо с нуля, мне было любопытно, если бы кто-нибудь еще сталкивался со способом предоставления мастера первоначальной настройки для приложения Rails, которое позволяет пользователю (sysadmin) настраивать аспекты приложения, такие как ActiveRecord настройка и настройка ActionMailer (SMTP, отправитель и т. д.).
Мы хотели бы предоставить простой и удобный способ установки для новых установок, вместо того, чтобы просить клиентов редактировать файлы или запускать сценарии в командной строке.
По сути, вы должны иметь возможность загрузить приложение, распаковать его, запустить его, и когда вы обращаетесь к нему через браузер, вы выполняете начальные шаги настройки.
Мой вопрос не столько в том, как это сделать, но больше кто-нибудь уже сделал это. Мой быстрый поиск драгоценных камней, плагинов и т. Д. Вокруг этой идеи мало что дал.
Редактировать / Разъяснение
Чтобы прояснить сценарий - это поддержка "термоусадочных" продуктов, которые загружаются и устанавливаются локально администратором системы клиента.
В первый раз, когда они получают доступ к нашему приложению после его развертывания за брандмауэром, нам нужен дружественный способ настройки определенных параметров для их установки, таких как база данных и т. Д.
Примером такого процесса является мастер установки JIRA:
https://confluence.atlassian.com/display/JIRA/Running+the+Setup+Wizard
Это не для создания новых приложений для рельсов и не для систематизации нашего процесса разработки.
2 ответа
Мне очень нравится Rails Templater. Это инструмент командной строки для создания приложения rails. Он задает вам такие вопросы, как "Хотите ли вы использовать rspec? Pry вместо IRB?"
Я создал форк, который добавляет аутентификацию, twitter bootstrap, backbone.js и некоторые другие опции. Это довольно легко взломать, если у вас есть конкретные потребности. Я использую это все время, и я бы не хотел иметь это.
Это, конечно, приложение командной строки, которое нельзя использовать через браузер, но, возможно, оно все равно будет соответствовать вашим потребностям. Или кодовая база может быть интегрирована в клиентское веб-приложение.
Обновить после комментария
Возможно, вы сможете загрузить базу данных sqlite, чтобы приложение могло загрузиться, а затем просто с помощью формы или мастера настроить что-то, что записывает ваш database.yml и другие конфиги, возможно, посредством tor (делает добавление / замену текста в файлах простой и является частью рельсов). Вам нужно будет как-то перезапустить приложение rails и перенести базу данных. Вы могли бы сохранить pg
или же mysql2
драгоценный камень (или оба) в вашем Gemfile или снова используйте THOR, чтобы редактировать их из вашего мастера / формы.
Я также рекомендую использовать rails_config, как предложил Майкл. С вышеупомянутым решением.
Если бы у меня было больше времени, чтобы подумать о проблеме, я мог бы придумать что-нибудь более чистое, но именно так я бы это сделал, если бы мне пришлось прямо сейчас.
http://railswizard.org/ позволяет вам выбрать, какие драгоценные камни использовать. Это очень инновационное использование пользовательского интерфейса и изотопного камня для выбора компонентов. Точно так же другой точкой зрения является этот список топ-10: http://blog.teamtreehouse.com/10-must-have-ruby-gems
Вы никогда не найдете исчерпывающий список драгоценных камней, так как их необходимо менять от человека к человеку и с течением времени, например, какая база данных используется вашей компанией и какая "текущая" лучшая аутентификационная жемчужина являются переменными.
Для конкретных настроек конфигурации вы можете сделать настройку менее трудоемкой, используя методы, которые ее уменьшают. Например, файл database.yml обычно является одним из файлов, которые "должны редактироваться локально". Наш подход заключается в том, чтобы исключить database.yml из системы контроля версий, поместив его имя в наш файл.gitignore. Мы добавляем файл database.yml.example, который локально копируем в database.yml, и в этом файле мы используем якоря (&) и ссылки (*), как подробно описано здесь: http://blog.geekdaily.org/2010/08/advanced-yaml-tricking-out-your-databaseyml.html
Дополнительные параметры для настройки других переменных для каждой среды: http://kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/ configuration- in-ruby-on-rails/
Gem config rails может также помочь вам, как подробно здесь: Как определить пользовательские переменные конфигурации в rails