2013-12-19 2 views
1

Я создаю монтируемый двигатель Blog, который люди будут использовать в качестве своего полного приложения.Как создать Rails-монтируемый движок, который является корневым приложением?

Если кто-то в настоящее время добавляет мой драгоценный камень в свое приложение Rails, он будет работать под URL-адресом /blog своего сайта (так как движок является импортером).

Как можно позволить им использовать драгоценный камень в качестве всего своего приложения?

т. Е. Они включают gem "Blog" в свой файл драгоценных камней, а их http://example.com/ показывает приложение, которое обеспечивает драгоценный камень.

Любая помощь была бы принята с благодарностью.

ответ

2

Это может быть хороший случай для routing concern (недавно введенный в Rails 4). То, что они делают, позволяет вам объединить & повторно использовать набор маршрутов. Таким образом, с очень простым приложением ведения блог, Вы могли бы иметь что-то вроде этого:

concern :bloggable do 
    resources :articles do 
    resources :comments 
    end 
end 

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

scope :blog do 
    concerns :bloggable 
end 

Это даст поведение у вас уже есть - все маршрутизации, связанные с блогом под директорией blog/. Однако это легко позволит пользователю изменить его. Чтобы поместить его в область корня, как вы предложили, пользователь должен будет добавить concerns :bloggable в базовую область своего файла маршрутизации, и он будет работать по назначению.

+0

Благодаря @Bubbles. Не знал, что это было. – Hopstream

0

Оказалось, что это самая простая вещь. Все, что нужно было это в маршрутах:

mount Blog::Engine => "/"

Смежные вопросы