Rails路由:param值为单个点

时间:2016-05-30 15:34:00

标签: ruby-on-rails ruby

我正在尝试向rails应用程序添加路由:

scope 'some_scope' do
  resources :some_resource, path: :resource, param: :name, constraints: { name: %r{.+} }, only: %i(update), format: false do
    put '/', as: :update, on: :collection, to: 'friendship_tags#update_collection'
  end
end

这适用于所有类型的网址值,例如: http://www.google.com,但考虑到只有点值,它似乎完全被打破了。

考虑的路线是:

PUT /some_scope/some_resource/:name

它们也是另一条叫做的路线:(这是街区内的路线)

PUT /some_scope/some_resource

现在发生的事情是:

当我打电话

PUT /some_resource/.

Rails以某种方式将此解释为第二个URL。 (PUT / some_scope / some_resource)

当我打电话

PUT /some_scope/some_resource/..

路由有一个例外:

ActionController::RoutingError (No route matches [PUT] "/some_scope")

当我打电话

PUT /some_scope/some_resource/...

然后一切正常。

有人可以帮帮我吗?我目前找不到解决方案吗?

0 个答案:

没有答案