链接/按钮删除回形针 - 路由错误

时间:2012-08-24 15:40:08

标签: ruby-on-rails ruby-on-rails-3 paperclip

我认为这个问题最终可能会成为更多的rails通用帮助,但我在尝试删除回形针项时遇到了问题。

当我点击我的按钮时,我只是得到---没有路线匹配[POST]“/ expenses / 3” - 也许这是调用方法的错误方法?

提前致谢,代码如下。

这是我的视图按钮,我刚刚复制了删除按钮,并将控制器方法更改为新方法。

            <%= link_to raw('<i class="icon-trash icon-white"> </i>'), 
                          expense_item, method: :destroy_receipt, 
                          data: { confirm: 'Are you sure delete receipt?' }, 
                          class: "btn btn-mini btn-danger" %>

并在我的控制器中

def destroy_receipt
  @expense = Expense.find(params[:id])
  @expense.receipt.destroy
  redirect_to expense_path
end

我的模特

class Expense < ActiveRecord::Base
  attr_accessible :amount, :expense_date, :description, :is_billable, :mileage, 
                                :pay_method, :project_id, :type_id, :on_site, :receipt

    belongs_to :project, foreign_key: :project_id
    belongs_to :expense_type, foreign_key: :type_id

  has_attached_file :receipt, :styles => { :medium => "300x300>", :small => "100x100>" }

1 个答案:

答案 0 :(得分:1)

你是对的,这不是正确的方法。

方法的正确参数:key是POST,GET,PUT,DELETE

你想要的东西是:

link_to 'hi' , '/urlforhi/:id', :method=>:post

然后你必须在routes.rb中有一条路线:

post '/urlforhi/:id' => 'yourcontroller#hi'

然后在controllers / yourcontroller.rb

def hi
  @thing = Thing.find(params[:id])
end

:method的参数指示要使用的HTTP VERB。

请注意,DEFAULT方法是get,所以这也可以:

link_to 'hi' , '/urlforhi/:id'

然后你必须在routes.rb中有一条路线:

get '/urlforhi/:id' => 'yourcontroller#hi'

或更常见

match '/urlforhi/:id' => 'yourcontroller#hi'