Rails 4路由 - 未定义的局部变量

时间:2014-01-31 15:21:15

标签: ruby-on-rails ruby-on-rails-4 routing rails-routing

我有一张付款表。在索引视图中,我列出了表格中的所有付款,在展示视图中,我想显示所有付款的形式,用户可以选择要进一步处理的付款。

在索引操作视图的表格上方,我有:

<%= link to "Customise", show_payment_path %>

然后在控制器中:

  def show
    @payments = Payment.all
  end

在我的路线档案中:

resources :payments

我得到的错误是:

undefined local variable or method `show_payment_path'

我试过了

<%= link_to 'Customise Sepa Mandate', show_payments_path %>

但也会出现同样的错误。和使用url而不是路径一样。

3 个答案:

答案 0 :(得分:0)

资源路由show操作的路径仅为payment_path(单一资源)或payment_path(id)。您的“自定义”链接会让我相信您确实想要edit_payment_path(id)

有关详细信息,请参阅Rails Guides — Generating Paths and URLs From Code

答案 1 :(得分:0)

运行rake routes命令查看可用的路由和正确的语法。

传递show_payment_path(:id)以获取特定的付款显示页面。

答案 2 :(得分:-2)

为此创建自己的路径并创建自己的路径变量,例如

resources :payments, except: [:show]  do
  get '/show' => "payments#show", on: collection, as: :show
end