Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails路径辅助对象生成点或未定义的方法,而不是斜杠_Ruby On Rails 3_Path - Fatal编程技术网

Ruby on rails 3 Rails路径辅助对象生成点或未定义的方法,而不是斜杠

Ruby on rails 3 Rails路径辅助对象生成点或未定义的方法,而不是斜杠,ruby-on-rails-3,path,Ruby On Rails 3,Path,路线定义如下 resources :purchases do collection do put :wirecardtest end end 控制器操作以以下方式之一重定向,并生成相关错误 format.html { redirect_to wirecardtest_purchase_path(@purchase) 未定义的方法“wirecardtest\u purchase\u path” format.html { redirect_to wireca

路线定义如下

 resources :purchases do
    collection do
       put :wirecardtest
    end
  end
控制器操作以以下方式之一重定向,并生成相关错误

format.html { redirect_to wirecardtest_purchase_path(@purchase)
未定义的方法“wirecardtest\u purchase\u path”

format.html { redirect_to wirecardtest_purchases_path(@purchase)
/purchases/wirecardtest.44

在查看代码时,行为是相同的。
ressource按其应有的形式以复数形式定义。重定向应该调用特定的ressource,它应该调用单数模型动作模式(复数形式,它将生成句点)。
我不明白我是怎么进入这该死的,如果你这么做了,如果你不这么做了

wirecardtest_purchases PUT    /purchases/wirecardtest(.:format)              purchases#wirecardtest

这就是你的错误。。路径生成为
“wirecardtest\u purchases”
,但您使用的是
“wirecardtest\u purchases”
注意缺少的“s”将“purchases”复数化

记住,这是一个收藏。因此,路径方法被rails多元化了

有疑问时:)

---更新---

改进答案(检查注释)。如果要对单个对象执行操作,这里需要将路由实际定义为:member而不是:collection。指


你能发布“rake routes”输出吗?谢谢。。勾选回答我只想显示一次购买。我的理解是rails资源允许调用给定类的一个或所有对象。或者“collection”会修改它吗?要对单个对象执行操作,应该定义:member而不是:collection,就像控制器中的“show”操作一样。看啊。。。就是这样!但我会编辑您的答案,以显示正确的路线定义,因为这是解决问题的方法。谢谢。我挂断了指南中的“单一资源”部分。这为我澄清了很多事情!很高兴能帮上忙!我们都曾在某个时刻去过那里。另外,欢迎您随时加分:):P
resources ::purchases do
  member do
    get 'wirecardtest'
  end
end