Ruby on rails 3 在子域Rails 3.1上安装引擎

Ruby on rails 3 在子域Rails 3.1上安装引擎,ruby-on-rails-3,ruby-on-rails-3.1,gem,ruby-on-rails-plugins,rack,Ruby On Rails 3,Ruby On Rails 3.1,Gem,Ruby On Rails Plugins,Rack,我正在用可安装的发动机做一些实验。首先,我需要您对一个场景的意见,我们将应用程序中的“大块大模块”作为“可安装的引擎”是一个好主意吗 我试过了,它工作得很好,在可安装的引擎中,我们可以全局访问应用程序的模型,在应用程序中,我们可以访问带有模块前缀的引擎模型。所以它对我来说很有用 现在是原来的问题: 我想将一个引擎挂载到一个子域,这样每个具有特定子域的请求都应该由该特定引擎提供服务。我用了这个密码 root :to=>'dashboard#index' scope :subdomain =&

我正在用可安装的发动机做一些实验。首先,我需要您对一个场景的意见,我们将应用程序中的“大块大模块”作为“可安装的引擎”是一个好主意吗

我试过了,它工作得很好,在可安装的引擎中,我们可以全局访问应用程序的模型,在应用程序中,我们可以访问带有模块前缀的引擎模型。所以它对我来说很有用

现在是原来的问题:

我想将一个引擎挂载到一个子域,这样每个具有特定子域的请求都应该由该特定引擎提供服务。我用了这个密码

root :to=>'dashboard#index'
scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end
在这种情况下,
mydomain.com
admin.mydomain.com
转到
dashboard controller
。如果我像那样改变偏好

scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end
root :to=>'dashboard#index'
在这种情况下,
mydomain.com
admin.mydomain.com
转到
特定于引擎的根控制器


我们如何完成此场景并在特定子域上装载引擎?

我使用以下路由条目完成此任务:

scope :subdomain => 'www' do
   root :to=>'dashboard#index'
end
scope :subdomain => 'admin' do
    mount MyAdmin::Engine => '/'
end

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

get "home/index"

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

root :to => 'home#index'

我可能完全错了,但到目前为止它还在运行。

如果我想在foo.com和www.foo.com上访问我的域foo.com,该怎么办?上述更改使得无法从foo.com加载内容。请参阅上面的@samuelkobe answer。是否无法在:子域中使用正则表达式?e、 g.scope:subdomain=>/^$| www/do…我认为您可以对subdomain使用regex,因为我们可以对任何路由约束参数使用它。但是以前没有测试过。非常有用!通过使用
mount Spree::Core::Engine=>“/”