如何从View中调用Rails控制器中的自定义方法

Mik*_*uto 3 ruby controller ruby-on-rails view

我已经设置了一个正确使用基本CRUD功能的站点.但是,当我尝试向我的控制器添加自定义方法时,我似乎无法将其连接到link_to呼叫.我一直收到method not found错误.

Controller方法如下所示:

def complete
    return render :text => "Complete"
end
Run Code Online (Sandbox Code Playgroud)

我在视图中的调用如下所示:

<%= link_to 'Complete', complete_list_task_path(@list,@task) %>
Run Code Online (Sandbox Code Playgroud)

同样的调用适用于我的Edit方法,所以我不确定我做错了什么.当方法不是基本的CRUD调用时,是否需要执行任何特殊操作?

我的路由文件的唯一相关部分看起来像这样(列表和任务是嵌套资源.列表有很多任务,任务属于列表):

resources :lists do
    resources :tasks
end
Run Code Online (Sandbox Code Playgroud)

我也尝试添加post "complete" => "lists/:id/tasks/:id#complete", :as => "complete"到我的路线,看看是否有助于隐式尝试调用它,但我仍然有一个"找不到方法错误".

任何帮助,以确定如何打电话将不胜感激.谢谢!

Dav*_*ton 5

有关详细信息,请参阅Rails路由指南中的添加更多RESTful操作 ; 简而言之,如果您希望路由识别标准方法以外的任何内容,则需要添加它.