带有链接的轨道形式的错误控制器操作

时间:2014-11-04 10:55:11

标签: ruby-on-rails html5 ruby-on-rails-4 haml

我有一张表格......

= simple_form_for @form, :url => update_path, :method => :put do |form| 
    = form.input_field :name
    = link_to image_tag asset_path("icon.png"), 
      {:controller => 'controller/name', :action => 'delete', :id => some.id}
    = form.submit

如上面的表格我有一个链接/图像/图标,点击它应该触发删除动作控制器,但由于某种原因它转到索引控制器动作。有人能指出这里有什么问题吗?

2 个答案:

答案 0 :(得分:1)

尝试做:

= link_to image_tag asset_path("icon.png"), 
          {:controller => 'controller_name', :action => 'delete_method_name', :id => some.id}, 
          {:confirm => 'Are you sure?', :method => :delete}

问题是,您需要将:method作为:delete传递,:action应该是控制器的方法名称,而不是HTTP方法。

答案 1 :(得分:1)

定义资源路径时,删除操作将定义为与更新操作相同的网址(使用 PUT PATCH < / strong> HTTP动词), 但可以使用 DELETE HTTP谓词

进行访问

您需要做的就是设置指向对象更新路径的链接,然后使用 DELETE 动词:

= link_to image_tag("icon.png"), update_path(id: some.id), method: :delete

此外,我认为不需要#asset_path