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

LPFpengfei · 2017年12月11日 · 最后由 msl12 回复于 2017年12月12日 · 2097 次阅读

先贴代码

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?
ruchee 回复

这样并不行,报错的会

ruchee 回复

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

params.slice(*%i[ begin_integral end_integral site_sn begin_order_count ...]).values.all?(&:present?)
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?)
bobo 回复

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

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

zerzerheart 回复

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

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

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

ruchee 回复

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

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

这么长的params判断...

LPFpengfei 关闭了讨论。 12月13日 14:33
需要 登录 后方可回复, 如果你还没有账号请 注册新账号