新手问题 这个弱鸡的换行问题

LPFpengfei · December 11, 2017 · Last by msl12 replied at December 12, 2017 · 2092 hits

先贴代码

if params[:begin_integral].present? || params[:end_integral].present? || params[:site_sn].present? || params[:begin_order_count].present? || params[:end_order_count].present? || params[:begin_order_sub_amount].present? || params[:end_order_sub_amount].present? || params[:begin_age].present? || params[:end_age].present?

问,这样的代码,怎么换行,让他变得整齐,我试着加换行符,试着用编辑器的自动换行都不能满足我的需求,请问有什么可以帮到我的方法?

if params[:begin_integral].present? ||
    params[:end_integral].present? ||
    params[:site_sn].present? ||
    params[:begin_order_count].present? ||
    params[:end_order_count].present? ||
    params[:begin_order_sub_amount].present? ||
    params[:end_order_sub_amount].present? ||
    params[:begin_age].present? ||
    params[:end_age].present?
Reply to ruchee

这样并不行,报错的会

Reply to ruchee

呃呃呃,什么鬼,我刚才弄是错的呢?现在好了。。。。。

params.slice(*%i[ begin_integral end_integral site_sn begin_order_count ...]).values.all?(&:present?)
Reply to zj0713001

这个略屌,我试试

params.values_at(:begin_integral, :end_integral, ...).all?(&:present?)
keys = %i[begin_integral end_integral] # ...
params.values_at(*keys).any?(&:present?)

以及如果下面这样也可以的话,更短:

keys = params.keys.grep(/begin|end|site_sn/)
params.values_at(*keys).any?(&:present?)
Reply to bobo

是的 应该是 any 吃饭的时候我就随手一写 带偏了 quakewang 哭...

这个是要验证表单获取的数据是否为空吗,如果是的话可以在 model 里用 validates 做验证。

Reply to zerzerheart

controller 里面做条件搜索时候,因为涉及到从其他表进行查询。 然后呢,先这样做

@customers = Customer.all
@customers = @customers.where。。。。 if prams[:id].present?

后来想这样不管搜索条件有没有值,都要查询一遍 customer 表,所以做 if 判断,完了再搜索,结果 if 判断的搜索条件太长了

Reply to ruchee

你这样要加 \ 才行,在每一句的后面

@zerzerheart @bobo @quakewang @zhandao 谢谢,照你们的解决了。。。。

这么长的params判断...

LPFpengfei closed this topic. 13 Dec 14:33
You need to Sign in before reply, if you don't have an account, please Sign up first.