2012-08-16 3 views
0

Я создал простое приложение с новостным модулем и определил новость как отдельный монтируемый движок (он также будет использоваться и для других проектов). Мне нужно иметь возможность монтировать административные и пользовательские части движка как отдельные маршруты в родительском приложении. Теперь я могу смонтировать весь двигатель какRails двигатель раздельный маршрут

Rails.application.routes.draw do 
    mount Jnews::Engine => "/news" 
end 

, но я хочу, чтобы отделить администратора и пользователей маршрутов на родительском приложении, /news для пользователя и /admin/news для администраторов. Это возможно?

ответ

0

Я думаю, что это зависит от того, почему вы хотите сделать это:

  1. Если вы хотите сохранить пользователей и администраторов, как отдельный код в новостях драгоценный камень - то вы, вероятно, хотите, чтобы изолировать 2 пространств имен, а затем монтируйте каждый из них, что может включать в себя их как отдельные двигатели.

  2. Если вы хотите (и это то, что, я думаю, вы имеете в виду?), Должен иметь общий код в движке новостей, но доступ к нему осуществляется с использованием двух разных URL-адресов в основном приложении на основе того, является ли пользователь простой пользователя или администратора? Что я буду делать в этом случае что-то вроде этого:

в главном приложении

Rails.application.routes.draw do 
    mount Jnews::Engine => "/app" 
end 

на маршрутах двигателей

Jnews::Engine.routes.draw do 
    match "/news", :to => "some_controller#some_action" 
    match "/admin/news", :to => "some_controller#some_action" 
end 

А потом в основной приложение, основанное на том, что пользователь (пользователь или администратор) вы можете перенаправить либо на app/news, либо на app/admin/news

Я надеюсь, что это поможет, я не уверен в выполнении условной маршрутизации.

Однако здесь действительно хороший гид для маршрутизации: http://guides.rubyonrails.org/routing.html

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

mount Jnews::Engine => ":user_id/news" 

, где вы в конечном итоге с Jnew :: Двигатель направляется либо на user/news и admin/news? Я никогда этого не делал, поэтому я не знаю, возможно ли это ... может быть?

Дай мне знать, если это поможет :) Cheers