【问题标题】:How to delete id from params after destroy?销毁后如何从参数中删除id?
【发布时间】:2015-04-10 08:00:26
【问题描述】:

我使用 RailsCast #228 Sortable Table Columns 制作了可排序的列 一切正常。 但是当我通过 ajax 排序添加销毁记录时,删除后链接不起作用

application_helper.rb

#application_helper.rb
def sortable(column, title = nil)
 title ||= column.titleize
 css_class = (column == sort_column) ? "current #{sort_direction}" : nil
 direction = (column == sort_column && sort_direction == "asc") ? "desc" : "asc"
 link_to title,  params.merge(:sort => column, :direction => direction, page: nil),  {:class => css_class, remote: true }
 end

contracts_controller.rb

#contracts_controller.rb
def destroy
 @contract.destroy
 if params[:limit]
  @contracts = Contract.includes(:department).order(sort_column + ' ' + sort_direction).page(params[:page]).per(params[:limit])
 else
  @contracts = Contract.includes(:department).order(sort_column + ' ' + sort_direction).page(params[:page])
 end
 respond_to do |format|
  format.html {}
  format.js {flash.now[:danger] = "Success delete"}
 end
end

删除链接

<%= link_to 'Delete', contract, remote: true, method: :delete, data: { confirm: 'Are you sure?' } , class: 'btn btn-danger'%>

销毁后要排序的链接是/contracts/1?direction=asc&amp;sort=contractor,但我需要/contracts?direction=asc&amp;sort=contractor

【问题讨论】:

  • 删除后尝试重定向到index

标签: ruby-on-rails ruby railscasts


【解决方案1】:

sortable 帮助链接可能必须像这样更改,

link_to title,  your_index_path(params.merge(:sort => column, :direction => direction, page: nil)

【讨论】:

  • 它不起作用。我在链接中使用remote:true,格式为js
  • @AndreyDemidenko 你是对的。为 ajax 响应编辑答案
  • 但是这样就不需要remote: true。
  • 它会解决问题。但是当我需要为另一个模型使用可排序的辅助方法时,我必须创建一个可排序的新方法。这样好吗?
  • 在可排序的方法中添加额外的参数path
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2018-10-22
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
相关资源
最近更新 更多