加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails模型验证中使用哪个更好:Proc还是lamb

发布时间:2020-12-17 03:50:45 所属栏目:百科 来源:网络整理
导读:我知道proc和lambda之间的区别.哪个更适合根据指南在Rails模型验证中使用:Proc或lambda? PROC: 与块类似的行为. 可以存储在变量中并移动. 参数数量没有问题. 从proc返回将退出调用它的方法. LAMBDA: 与Proc相同,但更接近方法. 严格关于它得到的论点,它需
我知道proc和lambda之间的区别.哪个更适合根据指南在Rails模型验证中使用:Proc或lambda?

PROC:

>与块类似的行为.
>可以存储在变量中并移动.
>参数数量没有问题.
>从proc返回将退出调用它的方法.

LAMBDA:

>与Proc相同,但更接近方法.
>严格关于它得到的论点,它需要.
>从lambda返回将退出lambda,并且调用它的方法将继续执行.

但我还没有看到它产生影响的验证:

validates :name,present: true,if: -> { assotiation.present? }
validates :name,if: proc { |c| c.assotiation.present? }

我检查了rubocop并没有找到任何关于它的建议.你知道ruby / rails风格指南,rubocop或其他东西哪个更好?

解决方法

我能想到的唯一区别是可以使用λs的早期回报.也就是说,前者会愉快地验证,而后者会引发LocalJumpError:

validates :name,if: -> { return false unless assotiation; assotiation.present? }
validates :name,if: proc { return false unless assotiation; assotiation.present? }

另外,我使用以下经验法则:严格要比宽敞要好.因此,除非你绝对明确需要一个触发器,否则λ是更好的工具,可以随处使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读