Ruby on rails ruby/rails中的条件过程?

Ruby on rails ruby/rails中的条件过程?,ruby-on-rails,ruby,Ruby On Rails,Ruby,Proc在我们的代码中用于选择记录。以下是一个例子: Proc.new { models.where('payment_requestx_payment_requests.paid = ?', params[:paid_s] == 'true')} 如果满足一个简单的条件,我们正在寻找一种方法来运行这个Proc。否则,如果条件返回false,则跳过Proc。比如: Proc.new { models.where('payment_requestx_payment_requests.paid

Proc在我们的代码中用于选择记录。以下是一个例子:

Proc.new { models.where('payment_requestx_payment_requests.paid = ?',  params[:paid_s] == 'true')}
如果满足一个简单的条件,我们正在寻找一种方法来运行这个
Proc
。否则,如果条件返回false,则跳过
Proc
。比如:

Proc.new { models.where('payment_requestx_payment_requests.paid = ?',  params[:paid_s] == 'true') if params[:condition] == 'true' }

该条件必须在
过程中
。这在ruby/rails中是可行的吗

也许使用三元运算符会有所帮助

p = Proc.new {condition ? puts('condition is true!') : puts('condition is false!')}
condition = false
p.call
>> condition is false!
condition = true
p.call
>> condition is true!

也许使用三元运算符会有所帮助

p = Proc.new {condition ? puts('condition is true!') : puts('condition is false!')}
condition = false
p.call
>> condition is false!
condition = true
p.call
>> condition is true!

重新创建您正在处理的设置(某种程度上):

使用if语句:

p = Proc.new { [{a:1},{b:2}] if false }
p.call
 => nil 
如果没有记录满足where条件,Active record将返回一个空数组,因此我假设您需要提供:

p = Proc.new { false ? [{a:1},{b:2}] : [] }
p.call
 => [] 
或者在您的情况下:

Proc.new { params[:condition] == 'true' ? models.where('payment_requestx_payment_requests.paid = ?',  params[:paid_s] == 'true') : [] }

清空警告。

重新创建您正在处理的设置(有点):

使用if语句:

p = Proc.new { [{a:1},{b:2}] if false }
p.call
 => nil 
如果没有记录满足where条件,Active record将返回一个空数组,因此我假设您需要提供:

p = Proc.new { false ? [{a:1},{b:2}] : [] }
p.call
 => [] 
或者在您的情况下:

Proc.new { params[:condition] == 'true' ? models.where('payment_requestx_payment_requests.paid = ?',  params[:paid_s] == 'true') : [] }

买主注意。

如果条件为假,程序会返回什么?您发布的示例是有效的ruby-它的哪个方面不起作用?
Frederick
,我没有尝试过。我没有在网上找到类似的例子,也不确定
Proc
是否会采用
if
。将启动。
mu太短
,强制跳过整个
过程
如果条件为假,如果条件为假,该过程将返回什么?您发布的示例是有效的ruby-它的哪个方面不起作用?
Frederick
,我没有尝试。我没有在网上找到类似的例子,也不确定
Proc
是否会采用
if
。将启动。
mu太短
,如果条件为falseModel,则强制跳过整个
Proc
。none-返回空ActiveRecordModel的更干净方式。none-返回空ActiveRecord的更干净方式