Question

I have a payments table. In the index view I list all payments in a table and in the show view I'd like to show a form of all payments where a user can select which ones to further process.

Above the table in the index action view I have:

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

Then in the controller:

  def show
    @payments = Payment.all
  end

In my routes file:

resources :payments

The error I am getting is:

undefined local variable or method `show_payment_path'

I have tried

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

as well but that gives the same error. As does using url instead of path.

Was it helpful?

Solution 3

for that make your own routes and create their own path variable such as

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

OTHER TIPS

The path for resourceful-routed show actions is just payment_path (singular resource) or payment_path(id). Your “customize” link would lead me to believe you actually want edit_payment_path(id), though.

See Rails Guides — Generating Paths and URLs From Code for more info.

Run rake routes command to see available routes and correct syntax.

Pass show_payment_path(:id) to get the particular payment show page.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top