我有SPA和几个模型,我想为REST api创建表单,但我不想在JS和Ruby中复制验证器数据。
我想要的只是从rails获取验证器数据(必需,只读,类型,默认,选项,名称,标签,help_text)并从中获取表单。
问题是我没有看到将模型序列化为json的任何解决方案。使用Python,Django REST Framework,我可以提出OPTIONS请求,它将为我提供有关模型字段,解析器,方法等的完整信息。是否有类似的Rails解决方案?
答案 0 :(得分:1)
Rails 3和Rails 4中提供了验证反射:MyModel.validators
(railscast)。这将为您提供一个包含所有带选项的验证器的数组,例如:
[
[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)。
希望它有所帮助。