【发布时间】:2019-08-06 06:04:39
【问题描述】:
我知道 proc 和 lambda 之间的区别。根据指南,在 Rails 模型验证中使用哪个更好:Proc 还是 lambda?
过程:
- 与块类似的行为。
- 可以存储在变量中并可以移动。
- 参数数量没有问题。
-
来自 proc 的
return将退出调用它的方法。
Lambda:
- 与 Proc 相同,但更接近于方法。
- 严格遵守它获得和需要的参数。
-
来自 lambda 的
return将退出 lambda,调用它的方法将继续执行。
但我还没有看到它产生影响的验证:
validates :name, present: true, if: -> { assotiation.present? }
validates :name, present: true, if: proc { |c| c.assotiation.present? }
我检查了 rubocop 并没有找到任何关于它的建议。您知道 ruby/rails 风格指南、rubocop 或其他方面认为哪个更好吗?
【问题讨论】:
标签: ruby-on-rails ruby validation lambda proc