Rails路径助手生成点或未定义的方法而不是斜杠

时间:2014-06-09 12:05:23

标签: ruby-on-rails-3 path

路线定义如下

 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

1 个答案:

答案 0 :(得分:1)

那就是你的错误..路径生成为'wirecardtest_purchases',但你正在使用'wirecardtest_purchase'注意缺少的's'来复制'购买'。

记住它的集合。因此路径方法由rails复数。

当怀疑耙路线时:)

<强> --- ---更新

改善答案(查看评论)。这里需要实际将路由定义为:member而不是a:collection,如果你想对单个对象进行操作。参考Rails Docs

resources ::purchases do
  member do
    get 'wirecardtest'
  end
end