有没有办法将模型验证器序列化为json或任何其他常见模式?

时间:2014-10-09 12:41:35

标签: ruby-on-rails json forms models

我有SPA和几个模型,我想为REST api创建表单,但我不想在JS和Ruby中复制验证器数据。

我想要的只是从rails获取验证器数据(必需,只读,类型,默认,选项,名称,标签,help_text)并从中获取表单。

问题是我没有看到将模型序列化为json的任何解决方案。使用Python,Django REST Framework,我可以提出OPTIONS请求,它将为我提供有关模型字段,解析器,方法等的完整信息。是否有类似的Rails解决方案?

1 个答案:

答案 0 :(得分:1)

Rails 3和Rails 4中提供了验证反射:MyModel.validatorsrailscast)。这将为您提供一个包含所有带选项的验证器的数组,例如:

[
    [0] #<ActiveRecord::Validations::PresenceValidator:0x007fe542431b40 @attributes=[:name], @options={}>,
    [1] #<UrlValidator:0x007fe542431050 @attributes=[:url], @options={:allow_blank=>true}>
]

如果您想获得validation errors,则选项是通过json响应传递@object.errors.messages

此外,您可以使用AMS将模型数据序列化为json(railscast)。

希望它有所帮助。