Rails 5:重定向通配符,但路由中提到的通配符除外

时间:2018-03-28 09:57:13

标签: ruby-on-rails ruby ruby-on-rails-5

我的路线中有这个.rb

constraints SubdomainConstraint do
  scope '/', controller: :hub_categories do
    get '/', to: 'hub_categories#index'
    get 'list', to: 'hub_categories#list'

    post 'documents', to: 'hub_categories#create'
    delete 'documents/:id', to: 'hub_categories#destroy'
    get 'documents/:id/request', to: 'hub_categories#request'
    get 'documents/:id/result', to: 'hub_categories#result'
    get 'documents/:id/word', to: 'hub_categories#word'
  end

  root to: 'hub_categories#index'
end

在这个约束之外,我有更多的路线,比如/documents等。除了约束内的那些路径(包括,比方说,get 'documents')到'hub_categories#index'之外,我该怎么匹配?​​

我的所有尝试,例如约束块本身中的match '*', to: 'hub_categories#index', via: :all,最终都会出现此错误:

  

ruby​​ /Users/cdrum/.rvm/gems/ruby-2.5.0@aplus/bin/rspec(51938,0x7fff9ee53340)malloc:***对象0x7fef03d21210的错误:释放对象的校验和不正确 - 对象可能已被修改被释放后   在malloc_error_break中设置断点以进行调试

离题更新

这个错误是由于RVM安装损坏所致,所以如果你正在运行rvm implode然后重新安装RVM,然后重新安装Ruby,那么你的宝石。

1 个答案:

答案 0 :(得分:0)

将它放在SubdomainConstraint块的底部就可以了:

get '*path', to: 'hub_categories#index'

Rails 5已弃用match,我的错误是由于RVM安装损坏造成的。