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