ransack的sort_link路由错误

时间:2013-06-14 21:25:08

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

我一直在使用sort_link对页面上的链接进行排序

= sort_link(@search, :project_token, "Project ID")

它运行正常......但是当用户过滤某些内容时,它会将我带到url discount / set_filter,一旦它到达那里,可排序链接就不再起作用并引发路由错误

  No route matches [GET] "/manager/reports/discounts/set_filter"

我已经查看了文档,并查看了它上面的railscast http://railscasts.com/episodes/370-ransack?view=asciicast ...... Ryan Bates确实解决了这个问题,但他通过将其移动到filter.html.haml部分来解决这个问题。不是我想要的.....我希望保持我的链接可以排序,而不会出现此错误

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

所以我通过在每个sort_link中添加{action:'show'}来解决这个问题

  %th.align_left 
    = sort_link(@search, :project_token, "Project ID", { action: "show" })
  %th.align_center 
    = sort_link(@search, :project_district_name, "District", { action: "show" })
  %th.align_center 
    = sort_link(@search, :property_city, "Property Address", { action: "show" })
  %th.align_center 
    = sort_link(@search, :created_at, "Application Date", { action: "show" })
  %th.align_center 
    = sort_link(@search, :submitter_first_name, "Submitted By", { action: "show" })
  %th.align_center 
    = sort_link(@search, :discount_code, "Code", { action: "show" })

这样可行,但我仍然不确定这是否是最佳方法......似乎违反了D.R.Y原则。

任何建议都会有所帮助

谢谢!