rails - 按属性获取所有元素顺序

时间:2015-07-20 09:55:44

标签: ruby-on-rails controller haml

我想显示项目的阶段列表。为此,我在控制器中加载所有阶段

def load_project
    @project = Project.find params[:id]
    @phases = @project.phases
end

然后我使用haml

中的每个函数浏览@phases
- @phases.each do |phase|
    %tr ...

问题是以前代码的sql请求没有任何order属性,所以它是id的默认顺序。

SELECT `phases`.* FROM `phases` WHERE `phases`.`project_id` = 123

我想通过阶段属性调用" position"来订购此请求。是否可以添加订单选项?

3 个答案:

答案 0 :(得分:1)

您可以在控制器或视图中添加order

#share_post_button

或者

def load_project
    @project = Project.find params[:id]
    @phases = @project.phases.order(:position)
end

答案 1 :(得分:1)

试试这个

> git diff abcdef 123456 foo.h | git apply -3

而是将范围添加到模型阶段,如此

@phases = @project.phases.order("position ASC")

并以这种方式打电话

scope :ordered, order: "position ASC"

答案 2 :(得分:1)

project.rb

has_many :phrases, order: 'phrases.column_name'

因此,这将使用您指定的column_name命令项目的所有短语

如果您希望默认关联,则可以执行此操作