在Active Query中使用Rails模型方法

时间:2014-02-02 10:47:16

标签: sql ruby-on-rails methods model controller

我的某个模特上有一个orde字段,该模型还有一个is_milestone?返回true或false的方法,具体取决于订单是50或100里程碑。

我希望选择所有里程碑项目但是可以使用is_milestone来完成吗?方法

我目前有:

@milestones = Model.where(:is_milestone?).order('order ASC')

但它不起作用,我认为我的语法错误但不确定应该如何编写。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

否 - 您不能要求数据库执行需要与您的Ruby代码交互的查询。

您能够使其工作的唯一方法是在模型上创建is_milestone属性并将布尔值存储在数据库中。您可以使用after_save回调填充此值,该回调计算里程碑,如果它是第50个或第100个,则将值设置为true。