我有SPA和一些模型,我想为RESTapi创建表单,但我不想在JS和Ruby中重复验证器数据。
我只想从rails中获取验证器数据(必需的、只读的、类型、默认值、选项、名称、标签、help_text),并从中呈现表单
问题是我看不到任何将模型序列化为json的解决方案。有了Python,Django REST Framework,我可以发出OPTIONS请求,它会给我关于模型字段、解析器、方法等的完整信息。有没有类似的Rails解决方案?
Rails3和Rails4:MyModel.validators
(railscast)中有可用的验证反射。这将为您提供一个包含所有具有选项的验证器的数组,例如:
[
[0] #<ActiveRecord::Validations::PresenceValidator:0x007fe542431b40 @attributes=[:name], @options={}>,
[1] #<UrlValidator:0x007fe542431050 @attributes=[:url], @options={:allow_blank=>true}>
]
如果您想获得验证错误,可以选择通过json响应传递@object.errors.messages
。
此外,您可以使用AMS将模型数据序列化为json(railscast)。
希望能有所帮助。