Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 按条件查找轨道_Ruby On Rails_Ruby On Rails 3_Activerecord_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 按条件查找轨道

Ruby on rails 按条件查找轨道,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.2,只是想知道是否有任何函数允许这样做: MyModel.find_by_conditon(method_a - method_b > 0) def下次维修日期 服务\当前日期?计算时间估算:行时间估算 结束 def计算时间估算 服务日+计算服务期 结束 def计算的维修周期 案例(服务频率周期) “年”是什么时候 服务频率号至年 “月”是什么时候 服务频率号至月 “一周”是什么时候 服务频率号至i日*7 “一天”是什么时候 服务频率号至日 结束 结束 service\u frequency\u n

只是想知道是否有任何函数允许这样做:

MyModel.find_by_conditon(method_a - method_b > 0) def下次维修日期 服务\当前日期?计算时间估算:行时间估算 结束 def计算时间估算 服务日+计算服务期 结束 def计算的维修周期 案例(服务频率周期) “年”是什么时候 服务频率号至年 “月”是什么时候 服务频率号至月 “一周”是什么时候 服务频率号至i日*7 “一天”是什么时候 服务频率号至日 结束 结束
service\u frequency\u number
service\u frequency\u period
service\u date
是MyModel的属性

不完全确定您想要实现什么。。但是您可能不得不求助于SQL

(方法a和方法b是什么?)


假设
method\u a
method\u b
实际上是属性,您可以执行以下操作:

MyModel.where('method_a - method_b > ?', 0)
编辑

我认为能够查询计算字段的唯一方法是将计算移动到DB,在DB中使用标量函数返回结果。然后您可以执行
MyModel.where('next\u service\u date\on\u db(service\u date)>0')
。不幸的是,这会将您绑定到特定于DB的实现,但是如果没有服务器端函数,您将无法以这种方式进行查询

现在,如果您拥有整个集合,您可以根据这些条件进行筛选,但必须加载整个集合。例如:

MyModel.all.select {|m| m.method_a - m.method_b > 0}

#all
返回所有对象的数组,并根据块的条件选择过滤器。不幸的是,此解决方案将所有记录加载到应用程序端进行排序。

不幸的是,方法a和方法b不是属性,只是更新了一个问题是
next\u service\u date
an属性?@SeanHill啊,我有一段时间没有刷新我的页面了。我删除了我的答案,因为你在说同样的话。谢谢你能更好地了解你要解决的问题吗?这个问题和定义有点模糊。上次维修日期是否等于维修日期?另外,行时间估计是如何定义的?这将如何工作
method\u a
method\u b
MyModel
上的实例方法。我觉得method\u a和method\u b在组合时返回某种整数。。将用于与“大于0”进行比较。
MyModel.where('? > 0', (method_a - method_b))
MyModel.where('method_a - method_b > ?', 0)
MyModel.all.select {|m| m.method_a - m.method_b > 0}