查看rails代码,我看不到执行条件验证的地方…当你将字符串或符号传递给:if
时,它会为字符串执行eval
,为符号执行send
…这在哪里发生?
一直试图通过代码跟随它,但我找不到if
选项分为send
或eval
以及这一切是如何工作的。只是试着学习和跟随rails是如何做到的。
https://github.com/rails/rails/blob/master/activemodel/lib/active_model/validator.rbhttps://github.com/rails/rails/blob/master/activemodel/lib/active_model/validations.rb
谢谢!
这个方法负责所有正在执行的符号、字符串和lambdas。看来Rails正在使用activesupport callbacks
来实现验证。