我是 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
有人可以帮我解决这个问题吗?我已经在谷歌上研究了它,但我没有得到任何结论!任何帮助将不胜感激。
假设您必须对表中title
和release_date
字段进行排序movies
。
您可以在数据库级别本身执行排序,如下所示:
在 Rails 4.x 中:
下面将按标题和release_date升序对所有电影记录进行排序(默认)。
def index
@movies = Movie.order(:title, :release_date)
end
如果要更改顺序,可以指定为asc
或desc
为:
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