使用 haml 对 Ruby on Rails 表中的 2 列进行排序



我是 rails 的新手,目前使用的是 3.23 版,我正在尝试对表中的两列启用"排序"。我设法在这些列标题上创建了链接,实际上有一列工作/排序!但是当我在电影控制器 rb 中修改我的代码时无法达到相同的结果,我的代码只能用于一列!是:

def index
  @movies = Movie.all.sort_by { |movie| movie.title } 
end

工作完美,但是当我组合另一个参数(即发布日期)时,我收到错误!

def index
  @movies = Movie.all.sort_by { |movie| movie.title } then { |release date| release.date}
end

有人可以帮我解决这个问题吗?我已经在谷歌上研究了它,但我没有得到任何结论!任何帮助将不胜感激。

假设您必须对表中titlerelease_date字段进行排序movies

您可以在数据库级别本身执行排序,如下所示:

在 Rails 4.x 中:

下面将按标题和release_date升序对所有电影记录进行排序(默认)。

def index
  @movies = Movie.order(:title, :release_date)
end

如果要更改顺序,可以指定为ascdesc为:

def index
  @movies = Movie.order(title: :asc, release_date: :desc)
end

在 Rails 3.x 中:

def index
  @movies = Movie.all(:order => "title ASC, release_date ASC")
end

如果要更改顺序,可以在上述情况下指定为DESC

您可以按此订购您的列表

def index
    @movies = Movie.order(title: :asc, release_data: :desc)
end

相关内容

  • 没有找到相关文章