Zakoff
Zakoff

Reputation: 13005

no route matches action in link_to

I am a little confused on how to set the route for a custom action. I have the following link in my view:

<%= link_to 'mark done', finish_task_path(task.id), :method => :post %>

In my tasks_controller I have:

  def finish
     @task = Task.find(params[:id])
     new = {:status => "done"}
     @task.update_attributes(new)
     redirect_to :action => "index"
  end

In my routes file I have:

match '/tasks/:id/finish', :to => 'tasks#finish'

I have also tried the following in my view:

    <%= link_to 'mark done', finish_task_path(task.id), :method => :post %>    

Which also has not worked. How do I set the route correctly?

Upvotes: 2

Views: 2128

Answers (1)

tadman
tadman

Reputation: 211740

You've created a route, but it is not named. Does this work?

match '/tasks/:id/finish', :to => 'tasks#finish', :as => 'finish_task'

Have a look at the output of rake routes to ensure your routes are being declared as you want.

Upvotes: 3

Related Questions