多域路由应用程序从轨道3〜4失败无效的路由名称,已在使用中:“根”(引发ArgumentError)

问题描述:

已经和老轨3的应用程序,像这样多域路由应用程序从轨道3〜4失败无效的路由名称,已在使用中:“根”(引发ArgumentError)

RailsAppli::Application.routes.draw do 
    root :to => "landing#pos", :constraints => { :host => "pos.com.ar" } 

    root :to => "landing#desa", :constraints => { :host => "desa.com.ar" } 

    root :to => "landing#plan", :constraints => { :host => "dise.com.ar" } 

这就是做工精细一个的routes.rb但我升级到导轨4和

无效的路由名称,已在使用中:“根”(引发ArgumentError)

请告诉我问题。

谢谢。

+0

什么是你的应用的领域? – nateleavitt

更新的答案基于:Separate Domain for Namespaced Routes in Rails 4

缩短:

1)定义的lib/domain_constraint.rb自定义约束类:

class DomainConstraint 
    def initialize(domain) 
    @domains = [domain].flatten 
    end 

    def matches?(request) 
    @domains.include? request.domain 
    end 
end 

2)使用类在同航线新的块语法

constraints DomainConstraint.new('mydomain.com') do 
    root :to => 'mydomain#index' 
end 

root :to => 'main#index' 

或旧的 - 老式选项语法

root :to => 'mydomain#index', :constraints => DomainConstraint.new('mydomain.com') 
+0

好的,谢谢。但我需要根据不同的域名在我的应用程序中进行某些着陆。像pos.com.ar登陆#pos。在rails 3中这个routes.rb很好,最新是rails 4的方式吗?谢谢 – derfarg

+0

谢谢,但我需要的域,diferents域和一个应用程序服务这些域的不同着陆页。 – derfarg

+0

好吧看到这个:http://stackoverflow.com/questions/24122140/separate-domain-for-namespaced-routes-in-rails-4 – nateleavitt

完成!

只有一个根。

然后

RailsAppli::Application.routes.draw do 
    get '/', :to => "landing#pos", :constraints => { :host => "pos.com.ar" } 

    get '/', :to => "landing#desa", :constraints => { :host => "desa.com.ar" } 

    get '/', :to => "landing#plan", :constraints => { :host => "dise.com.ar" } 

感谢