2011-01-17 5 views
6

Я хочу создать приложение в Rails с плагиновой системой. Потенциальный пользователь должен иметь возможность загрузить (или лучше установить из репозитория) плагин и установить его, чтобы мое приложение могло сделать что-то еще. Это должно быть сделано БЕЗ FTP/SSH/любого низкоуровневого доступа к серверу.Rails 3: Создание приложения с внутренней системой плагинов

Есть ли хорошие драгоценные камни или учебники о том, как это сделать в Rails 3?

+0

Возможный дубликат [Создание рамки расширения для приложения Rails] (http://stackoverflow.com/questions/2570072/building-an-extension-framework-for-a-rails-app) – lulalala

ответ

0

Вы посмотрели http://edgeguides.rubyonrails.org/plugins.html?

Это не похоже на 100% совместимость с Rails 3, но оно может помочь вам начать работу. Большинство статей плагина, которые я видел, покрывают Rails 2.

+0

Это не совсем что я имею в виду, потому что он работает на стек RoR, а не на моем приложении. Но для меня это альтернатива. – Migol

0

Я на самом деле недавно подумал о твердой концепции для этого сам. Вы хотите посмотреть на $SAFE, механизмы rubys tainting и узнать все о значениях безопасности eval() ing ruby ​​code, если вы планируете разрешить пользователю писать свои плагины в рубине.

Если вы доверяете своим пользователям, тем самым уверенно позволяете им делать это, то есть.

Есть также много ресурсов (драгоценных камней, статей, сделайте поиск по Google) на sandboxing in Ruby - вы должны сами оценить, насколько это практично и/или безопасно.

Если вы не доверяете пользователю вообще, вы должны изучить writing your own DSL in ruby или реализовать другие способы выражения функциональности, не выполняя непосредственно код пользователя.

Выполнение чего-то подобного должным образом - задача не из легких.

+0

Я думал больше о Wordpress-подобной системе, когда, если пользователь устанавливает мое программное обеспечение на собственный сервер, он может загружать все, что захочет, но когда на моем сервере он может выбирать из плагинов, которые были предварительно загружены и одобрены. – Migol

+3

Тогда вы можете посмотреть плагины Rails, как показано ниже. Просто позвольте пользователю написать плагин Rails, который может использовать функциональность, открытую вашим приложением, чтобы подключиться к нему. [Redmine] (http://redmine.org) делает это так, см. Их [Страница плагинов Redmine] (http://www.redmine.org/projects/redmine/wiki/Plugins). –