0
我想从查询mongoid中将值分配给变量,只要计数优于特定值。检查并分配给变量而不执行两次ruby
,如果我做
mdl = Mdl.by_params(params) unless Mdl.by_params(params) < limit
查询被执行了两次,我该怎么做检查,并与一个查询分配?
我想从查询mongoid中将值分配给变量,只要计数优于特定值。检查并分配给变量而不执行两次ruby
,如果我做
mdl = Mdl.by_params(params) unless Mdl.by_params(params) < limit
查询被执行了两次,我该怎么做检查,并与一个查询分配?
你必须从Mongoid中检索数据来做比较。
mdl_temp = Mdl.by_params(params)
mdl = mdl_temp unless mdl_temp < limit
可能的解决方案取决于数据类型为md1
。
通用的解决方案:
((mdl = Mdl.by_params(params)) < limit) && md1 = nil
如果md1
是mutatable对象上午实例,来响应replace
(如Hash
):
Mdl.by_params(params).tap do |md|
md1.replace(md) unless CONDITION # md[:limit] < limit
end
谢谢,但我已经有很多查询像这样做,这是一种不可读的我认为也许有直接做这个ruby方法,或者可能做一个方法? – Bowtch
如果你有很多这样的查询,那么把逻辑分成独立的方法。 'mdl = search_by_params(params,limit)' –
是的,这是我写的方法,但如果最具体的查询没有返回足够的结果,我想得到结果^^也许我会问不同的问题,我没有已经足够具体在这一个谢谢你的时间;) – Bowtch