删除操作和销毁方法

时间:2013-06-25 10:50:29

标签: ruby-on-rails ruby

我有这样的观点:

<% if actions.include? "delete" %>
 <%= link_to 'Usuń', asset_path(asset), :method => :delete, :data => { :confirm =>   "Want to delete it?" }, :role => "link" %>
 <% end %>

,这在assetcontroller中:

def destroy

@asset = current_user.assets.find(params[:id])
@asset.destroy
redirect_to assets_path

end

问题是,当视图中的动作是“删除”时,为什么它“使用”破坏方法?

2 个答案:

答案 0 :(得分:1)

delete是HTTP协议的方法。 destroyaction的{​​{1}}。 使用controller HTTP方法路由会导致delete操作。

要编辑此路线并将destroy HTTP方法引导至delete操作(例如),您应修改delete文件。

答案 1 :(得分:1)

这是因为在您的routes.rb文件中,您已将模型定义为资源(​​或者像scaffold那样的生成器)。这意味着将生成默认的CRUD路由。如果您想以另一种方式进行,请使用您自己的路线而不是生成它们。

http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions