【问题标题】:Rails 4: Order Loops depending on HTML SelectorRails 4:根据 HTML 选择器排序循环
【发布时间】:2016-10-03 16:11:56
【问题描述】:

我想这样做有一段时间了,但我只是错过了我猜想的正确方法。

我到底想做什么。我有一个循环遍历项目,只是想根据用户在 HTML 选择器中选择的内容对它们进行不同的排序。

例如:

控制器

@items = Item.all

查看

- @items.order("created_at DESC").each do |item|

在这种情况下,"created_at DESC" 应该根据 HTML 选择器与其他代码行交换。

希望我的问题易于理解。提前感谢每个答案!

【问题讨论】:

  • 您希望能够使用表格列吗?
  • @Moataz Zaitoun - 不仅仅是元素的顺序 - 所以我猜是行。我没有在表格中输出数据,而是使用无序列表。
  • 请提供查看代码

标签: html ruby-on-rails ruby loops ruby-on-rails-4


【解决方案1】:

由于您没有提供有关要使用的 HTML 选择器的足够信息,我将解释一个非常基本的方法...

我假设在 items 索引视图中,您必须链接一个将按创建日期 desc 和另一个 asc 排序 Items

所以在你的 items/index.html.erb 中添加你想要的 2 个链接

<%= link_to 'Sort asc', order: 'created_at asc', method: :get %>
<%= link_to 'Sort desc', order: 'created_at desc', method: :get%>

然后在您的 items_controller.rb 中,将 index 操作替换为以下内容...

@items = Item.order(params[:order])

但是您应该注意将参数直接传递给您的控制器是有风险的,并且会使您陷入 SQL 注入的危险中,您应该首先对其进行清理。无论如何,这个RailsCast 会对你有很大帮助。

【讨论】:

  • 提前致谢!
猜你喜欢
  • 2018-09-19
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 2016-08-19
  • 2015-03-28
相关资源
最近更新 更多