我正在开发一个项目,该项目将对模型进行自定义验证并将其转换为 javascript 以在客户端运行。我们目前正在传递模型和验证方法(作为 UnboundMethod )。
JStranslator(model, Validator.instance_method(:validate))
我想要的是获取所有用于验证模型的 UnboundMethods,因为我们的翻译器利用方法的 AST 表示(使用“live-ast”),因此 model_name.validators 将不起作用(它返回一个我认为是数组)。我需要获取模型本身内部定义的所有自定义验证方法以及模型使用的所有验证器。
最佳答案
验证存储为回调,因此您可能想尝试一下:
Model._validate_callbacks # do something
资源:
- https://github.com/rails/rails/blob/master/activemodel/lib/active_model/validations.rb
- https://github.com/rails/rails/blob/master/activemodel/lib/active_model/callbacks.rb
- http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
如果您遇到困难,我们很乐意提供更多帮助。
关于ruby-on-rails - 从 Rails 中的模型中获取所有验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000744/