doe*_*che 2 ruby ruby-on-rails
您好我想在Rails控制器中对数组进行排序.我想在我在View中循环它之前对数组进行排序
@projects = Project.all.sort #throws error
#and
@projects = Project.all
@projects.sort # throws error
Run Code Online (Sandbox Code Playgroud)
抛出此错误:未定义的方法<=>,#<Project:0x101f70b28>
但当我查询时:
@projects.respond_to?('sort')
Run Code Online (Sandbox Code Playgroud)
我明白了
我该如何对数组进行排序?应该在视图中还是在控制器中完成?任何帮助都非常感谢!
Tru*_*oft 15
Ruby不知道如何对项目进行排序.您必须指定要用于排序的字段.示例created_at:
@projects = Project.all.sort { |p1, p2| p1.created_at <=> p2.created_at }
Run Code Online (Sandbox Code Playgroud)
要么
@projects = Project.all.sort_by &:created_at
Run Code Online (Sandbox Code Playgroud)
或者,您可以在数据库级别对它们进行排序:
@projects = Project.find(:all, :order => 'created_at')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6617 次 |
| 最近记录: |