Ruby on rails ruby/rails中的条件过程?
Proc在我们的代码中用于选择记录。以下是一个例子: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.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的更干净方式