路线定义如下
resources :purchases do
collection do
put :wirecardtest
end
end
控制器操作以下列方式之一重定向,并生成相关错误
format.html { redirect_to wirecardtest_purchase_path(@purchase)
未定义的方法`wirecardtest_purchase_path'
format.html { redirect_to wirecardtest_purchases_path(@purchase)
/purchases/wirecardtest.44
将代码放入视图时,行为是相同的
资源以多元模式定义,应该如此。重定向,因为它应该调用一个特定的资源应该调用奇异的模型 - 动作模式(复数形式,它会生成句点)。
我不明白我是怎么进入这个该死的 - 如果你这样做,该死的,如果你不在位。
wirecardtest_purchases PUT /purchases/wirecardtest(.:format) purchases#wirecardtest
答案 0 :(得分:1)
那就是你的错误..路径生成为'wirecardtest_purchases'
,但你正在使用'wirecardtest_purchase'
注意缺少的's'来复制'购买'。
记住它的集合。因此路径方法由rails复数。
当怀疑耙路线时:)
<强> --- ---更新强>
改善答案(查看评论)。这里需要实际将路由定义为:member而不是a:collection,如果你想对单个对象进行操作。参考Rails Docs,
resources ::purchases do
member do
get 'wirecardtest'
end
end