ActionDispatch::Routing::Mapper 的未定义方法 `propfind'

undefined method `propfind' for ActionDispatch::Routing::Mapper

我正在尝试在我的 rails 应用程序上实施 git push,它发送了 rails 似乎无法验证的 PROPFIND 请求。当我尝试时:

git 推送 http://localhost:3000/satellite/.git

它给了我:

Started PROPFIND "/satellite/.git/" for 127.0.0.1 at 2015-06-08 19:20:38 +0530

ActionController::RoutingError (No route matches [PROPFIND] "/satellite/.git")

然而 git clone http://localhost:3000/satellite/.git 工作正常。 (即回购存在于那里。)

如果我尝试将 propfind 添加到我的 routes.rb 文件中,它会给我:

undefined method `propfind' for ActionDispatch::Routing::Mapper

我发现了这个:https://rails.lighthouseapp.com/projects/8994/tickets/5895-allow-mounting-of-rack-apps-that-deal-with-http-extensions

我认为在那个补丁之后他们允许在 ActionDispatch 中使用 PROPFIND,并且在 doc 他们提到 propfind 作为 RFC3253 constant.Is 我可以通过什么方式启用 PROPFIND?

您似乎必须通过通用匹配器 (see this test) 将 PROPFIND 请求添加到您的路由中,因此以下内容应该适合您:

resources :git_repos do
  member do
    match '.git' => :your_route, :via => :propfind
  end
end