来自rails 3到4的多域路由应用程序失败无效的路由名称,已在使用中:' root' (引发ArgumentError)

时间:2017-03-16 21:53:14

标签: ruby-on-rails ruby routing multiple-domains

拥有像这样的routes.rb和旧的rails 3应用程序

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" }

这很好但我升级到rails 4和

无效的路线名称,已在使用中:' root' (引发ArgumentError)

问题是什么。

感谢。

2 个答案:

答案 0 :(得分:0)

根据以下内容更新答案: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')

答案 1 :(得分:-1)

完成!

只有一个根。

然后

def getData():
    separator = ','
    name_list = input().split(separator)
    verb_list = input().split(separator)
    fruit_list = input().split(separator)
    return (name_list, verb_list, fruit_list)

由于