在子域Rails 3.1上安装引擎

Naz*_*ain 8 gem rack ruby-on-rails-plugins ruby-on-rails-3 ruby-on-rails-3.1

我正在使用可安装引擎进行一些实验.首先,我需要你对一个场景的意见,我们在应用程序中将"大块模块"作为"可安装引擎"是一个好主意.

我尝试过这很好用,在可安装的引擎中我们可以全局访问app的模型,在app中我们可以访问带有模块前缀的引擎模型.所以它对我很有用.

现在来到原始问题:

我想将引擎挂载到子域,以便具有特定子域的每个请求都应该由该特定引擎提供.我用过这段代码.

root :to=>'dashboard#index'
scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end
Run Code Online (Sandbox Code Playgroud)

在这种情况下mydomain.com,admin.mydomain.comdashboard controller.如果我改变这样的偏好

scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end
root :to=>'dashboard#index'
Run Code Online (Sandbox Code Playgroud)

在这种情况下mydomain.com,admin.mydomain.comengine specific root controller.

我们如何完成此方案并在特定子域上安装引擎?

Naz*_*ain 12

我通过使用这些路由条目完成任务:

scope :subdomain => 'www' do
   root :to=>'dashboard#index'
end
scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end
Run Code Online (Sandbox Code Playgroud)


sam*_*obe 5

使用Rails 3.2.12和ruby 1.9.3-194我找到了一个不同的解决方案,也可以在本地工作以避免使用www.允许在某个子域中有引擎的子域问题.

get "home/index"

constraints :subdomain => 'store' do
    mount Spree::Core::Engine, :at => '/'
end

root :to => 'home#index'
Run Code Online (Sandbox Code Playgroud)

我可能完全错了,但它到目前为止工作.