0

我正在使用带有 Wicegrid 的 Rails 4,我希望在网格的每一行上都有一个链接以便能够删除记录,我已经创建了 link_to,但是当我按下它时出现错误:没有路由匹配 [DELETE]" /”。

我不想将用户发送到删除视图,我想删除记录并刷新网格并留在网格中。

我的控制器看起来像:

def destroy
    @risk = current_user.risks.find(params[:id])
     @risk.destroy
    respond_to do |format|
      format.html { redirect_to risks_url }
      format.json { head :no_content }
    end
end

我的索引视图如下所示:

<%= 
    grid(@risks_grid) do |g|
       g.column name: 'Id', attribute: 'id'

       g.column name: 'Title', attribute: 'title' do |p|
         p.title if p.title
       end
      .

       g.column do |p|
         link_to("Delete", :back, :data => { :confirm => "Are you sure?" }, :action => :destroy, :id => p.id, :method => :delete, :class => 'button-xs')                

       end
    end
 %>

谢谢,莱昂

4

1 回答 1

0

你的语法link_to看起来有点不对劲。您是说动作是:back,然后指定另一个动作的特定部分(actionid)。我从未使用过 wicegrid,但我认为以下内容就足够了

link_to("Delete", p, data: { confirm: "Are you sure?" }, method: :delete, class: 'button-xs')

如果您想通过 AJAX 进行删除,以便用户不会离开您需要remote: true在数据属性中使用的页面:

link_to("Delete", p, data: { remote: true, confirm: "Are you sure?" }, method: :delete, class: 'button-xs')

然后在您destroy.js.coffeedestroy.js.erb您可以使用 jQuery 或类似的东西对 DOM 进行适当的更新。

于 2014-07-22T13:14:55.887 回答