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

LPFpengfei · 发布于 2017年12月11日 · 最后由 msl12 回复于 2017年12月12日 · 541 次阅读
0e1301

先贴代码

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?

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

共收到 14 条回复
5917
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?
0e1301
5917ruchee 回复

这样并不行,报错的会

0e1301
5917ruchee 回复

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

3753
params.slice(*%i[ begin_integral end_integral site_sn begin_order_count ...]).values.all?(&:present?)
0e1301
3753zj0713001 回复

这个略屌,我试试

162
params.values_at(:begin_integral, :end_integral, ...).all?(&:present?)
27861

我觉得应该用any?(&:present?)

5f4ce7
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?)
3753
27861bobo 回复

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

Fd2b43

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

0e1301
Fd2b43zerzerheart 回复

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

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

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

0e1301
5917ruchee 回复

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

0e1301

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

60a8f6

这么长的params判断...

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