Rails路由和控制器操作

时间:2014-09-24 07:33:01

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

在我的控制器中我有 -

def remove_file
  @chap_comment.remove_chap_comment_pdf!
  @chap_comment.save
end

......在我看来,我有 -

<%= link_to 'remove pdf', controller: 'chap_comments', action: 'remove_file', id: comment.id %>

...在routes.rb中我只是 -

资源:chap_comments

...但是在带有链接的页面甚至渲染之前我得到了No route matches {:action=>"remove_file", :controller=>"chap_comments", :id=>1} - 我应该把什么放在我的路线中?

3 个答案:

答案 0 :(得分:1)

尝试使用member

  resources :chap_comments do
    member do
      delete 'remove_file'
    end
  end

这为remove_file添加了额外的资源路径。完整路径为remove_file_chap_comment_path

答案 1 :(得分:1)

您需要在路由文件中添加remove_file的路由。如下所示:

get "chap_comments/:id/remove_file" => 'chap_comments#remove_file'

答案 2 :(得分:0)

更改您的路线,如

resources :chap_comments do
  member do
    delete :remove_file
  end
end

然后你可以建立一个链接(运行rake routes以查看方法的完整路径名称)

= link_to "Remove PDF", remove_file_chap_comment_path(id), :method => :delete