Rails 3.1 — Разработка с монтируемыми движками

Я разрабатываю 2 приложения для 2 отдельных клиентов и 3 для себя. Все 3 приложения будут иметь адресную книгу, электронную почту и аутентификацию пользователей. Наконец, я хочу, чтобы приложения были созданы «модульными», чтобы я мог добавлять (или удалять) модули по мере необходимости.

Я посмотрел Mountable Engines Railscast, и это похоже на то, что мне нужно, но я все еще неясно следующее:

  1. Как вы разрабатываете каждый модуль движка (аутентификация пользователей, электронная почта, адресная книга) отдельно без общего базового приложения?
  2. Как вы разрабатываете модуль адресной книги, когда он требует аутентификации пользователя, которая вообще является отдельным модулем?

Я предполагаю, что вы сначала разрабатываете аутентификацию пользователя и включаете ее в фиктивное приложение модуля движка, но я путаюсь с пространством имен движка.

Возможно, будет полезно отметить, что я работаю на C# и новичок в веб-разработке.


person Theo Scholiadis    schedule 01.11.2011    source источник


Ответы (1)


Люди уже написали плагины аутентификации и электронной почты. Для большинства приложений остается только настроить эти модули.

Возможно, вы захотите написать механизм, чтобы поделиться некоторыми настройками и некоторыми функциями адресной книги. В этом случае вы можете рассмотреть возможность разработки примера приложения, в котором будет как можно меньше пользовательского кода для четкого определения API адресной книги.

person Scott Schulthess    schedule 05.11.2011
comment
Когда вы так говорите, это звучит просто :P Однако вы правы, и все мои исследования начали указывать на это. Я должен сосредоточиться на том, чтобы заставить работать приличный API для каждого модуля. Если я включу плагин с gem 'mypath' в свой Gemfile и внесу изменение в плагин, знаете ли вы, будет ли это изменение автоматически обновлено в приложении, в которое оно включено? - person Theo Scholiadis; 06.11.2011
comment
Я думаю, вы указываете путь, по которому вы будете вносить изменения по мере их внесения (по крайней мере, что касается упаковщика), но я бы перепроверил. Однако из-за загрузки/перезагрузки кода rails вам часто придется перезапускать сервер rails, чтобы иметь возможность принять изменения, если вы не внесете некоторые изменения в конфигурацию. - person Scott Schulthess; 08.11.2011
comment
Спасибо. В этом есть смысл. По крайней мере, теперь у меня есть место для дальнейших исследований :) - person Theo Scholiadis; 08.11.2011