Я думаю, это зависит от того, почему вы хотите это сделать:
Если вы хотите, чтобы пользователи и администраторы были отдельным кодом в геме новостей, то вы, вероятно, захотите изолировать 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::Engine, маршрутизируемый либо в user/news
, либо в admin/news
? На самом деле я никогда этого не делал, поэтому я не знаю, возможно ли это, однако... может быть?
Дайте мне знать, если что-то из этого поможет :) Ура
person
Krista
schedule
24.08.2012