从模型中获取验证
我如何获取模型中定义的验证列表
示例:
class ModelName
validates_presence_of :field_name
validates_inclusion_of :sex, :in => %w(M F)
end
我需要哈希,如下所示:
{:field_name => 'required', :sex => 'Must be in: M, F'}
How cat I get list of validations defined in model
Example:
class ModelName
validates_presence_of :field_name
validates_inclusion_of :sex, :in => %w(M F)
end
I need Hash like:
{:field_name => 'required', :sex => 'Must be in: M, F'}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您不需要插件来满足基本需求。
您可以执行此操作来获取所有验证器的哈希值。
如果您想获取特定字段的验证器:
You don't need a plugin for basic needs.
You can do this to get a hash of all validators.
If you want to get the validators for a specific field :
此代码生成一组必填字段。它应该适合您的需求。
This code yields an array of required fields. It should be adaptable to your needs.
如果您在模型中动态添加验证,则可以使用实例列出验证:
在 Rails 5.2 中测试。
If you add validations dynamically in your models, you can use the instance to list the validations:
Tested in Rails 5.2.
看起来没有本地方法可以做到这一点,但是快速谷歌(“rails 反映验证”)会出现这个插件< /a>.
Looks like there's no native way to do it, but a quick Google (for "rails reflect validations") turns up this plugin.
此代码对我有用:
ModelName.validators_on(:sex).first.options[:in]
answer: ["M","F"]< /strong>
您想要这样的内容:
回答 hsh: {:field_name=>"required", :sex=>"必须位于:M、F"}
我使用Rails 6.1.4.1
This code work for me:
ModelName.validators_on(:sex).first.options[:in]
answer: ["M","F"]
You want something like this:
answer hsh: {:field_name=>"required", :sex=>"Must be in: M, F"}
I use Rails 6.1.4.1