#ruby-on-rails #web-applications #desktop-application #offlineapps
#ruby-on-rails #веб-приложения #рабочий стол-приложение #автономные приложения
Вопрос:
Я создал приложение Rails, которое будет использоваться в месте, где нет Интернета. Я пытаюсь выбрать наилучший способ как можно быстрее преобразовать свою работу во что-то функциональное — будь то с помощью настольного приложения или какой-либо автономной версии того, что у меня есть.
Цели приложения заключаются в следующем: — Записывать биографические данные из личных опросов «один на один» — Экспортировать введенные локально демографические наборы данных и импортировать и обрабатывать другие подобные наборы данных —- Не нужно поддерживать что-либо слишком сложное (графически или иным образом), просто базовые Rails с Backbone.js для интерактивных просмотров опроса
Мне просто интересно, как быстрее всего получить что-то функциональное, что может работать в автономном режиме, учитывая приложение Rails, которое у меня есть (и мой фон Rails). Хочу ли я что-то вроде Titanium? Google Gears? Что-то вроде Prism или Fluid? Моя главная задача — быстро заставить что-то работать.
Ответ №1:
Если у вас есть автономное приложение, и вы хотите хранить данные локально и синхронизировать их обратно в среде, подобной HTML5, я знаю три решения.
-
Firebase — похоже, прочно в мире синхронизации данных, что связано с попытками сделать слишком много. Недостатком является то, что это коммерческая и размещенная служба.
-
Hood.ie — Мне не нравятся большие фреймворки, и мне кажется, что это попытка сделать слишком много, я не понимаю, почему некоторые функции там (например, электронная почта) и могут быть неполными. Однако это открытый исходный код, и он был создан некоторыми известными людьми на сцене JS, поэтому он, безусловно, заслуживает хорошего рассмотрения.
-
SyncIT — Отказ от ответственности Я написал это, поэтому я вижу только хорошие части и, конечно, думаю, что это лучшее решение. SyncIT — это операционная система, которая просто выполняет синхронизацию данных и ничего больше. Он состоит из очень несвязанных компонентов с небольшими API, поэтому для изменения узла потребуется всего день или около того.Серверная часть JS должна быть Rails (я не знаю rails, но помогла бы в этом). Он имеет хорошее тестовое покрытие и в основном VanillaJS, поэтому должен стать стабильной технологической базой на будущее.
Ответ №2:
Местные новости
Почему бы вам просто не использовать приложение Rails, но со всеми локальными компонентами?
Например, вы можете использовать MYSQL
/ PGSQL
локально; установите web server
локально, а затем добавьте простой домен в свой файл hosts, чтобы связаться
Это позволит вам обрабатывать ваши локальные запросы как производственные, предоставляя вам возможность загружать домен в свой браузер и запускать его так, как если бы вы подключались к реальному веб-сайту:
—
DB
Вы можете установить mysql, используя следующее:
Если вы установите это, просто зайдите в свой database.yml
и измените настройки на свои локальные настройки:
#config/database.yml
production:
...
host: 127.0.0.1
—
Сервер
Хотя вы могли бы запустить сервер Rails, он будет работать только в development
режиме.
Вам будет намного удобнее устанавливать Apache
(для обработки входящих запросов) и Phusion Passenger
запускать среду Rails
Вы сможете использовать этот учебник для этого (я могу предоставить подробности, если вы прокомментируете)
—
Домен
Наконец, вы сможете настроить домен в своем hosts
файле
Все, что вам нужно сделать, это замаскировать 127.0.0.1
с помощью домена, подобного Rails.app
или чему-то еще, поэтому, если вы перейдете к http://rails.app
, он найдет ваше приложение:
#hosts
127.0.0.1 rails.app
Ответ №3:
Вы можете попробовать это руководство от Railcast, чтобы использовать rack-offline
- Добавьте драгоценный камень «rack-offline»
- добавить в маршруты
match "/application.manifest"=. Rails::Offline
- и это создаст манифест файла кэша
- в представлении макета добавить
<html manifest="/application.manifest">
- Теперь вам нужен параметр, чтобы ресурсы загружались в автономное приложение
ENV["Rails_ASSET_ID"] =""
это отключит временные метки в файлах ресурсов добавьте это в файл конфигурации application.rb Теперь, когда приложение отключено, все еще нужно исправить некоторый код, чтобы оно работало идеально - Любой динамический контент должен быть добавлен через js и json, необходимо сохранить динамический контент в файле Я использую тот же код в руководстве для добавления контента
- jquery.tmpl
- jquery.offline Вы можете посмотреть больше информации об этом.