【发布时间】:2014-07-26 23:50:08
【问题描述】:
我一直在使用 Rails 和许多前端 js 框架和库,包括 Ember、Angular 和 React。虽然这三个库在它们自己方面都很强大,但一个痛点(至少对我而言)一直是表单验证。我一直讨厌让我的模型验证(在 Rails 中)与我的表单验证(在 Ember/Angular/React 中)保持同步。
最近,我一直在尝试将模型的验证器序列化为 json。然而,虽然在记录上调用 as_json 会给我一个 json 哈希,但它不会给我特定属性的验证器类型。
例如,假设我有一个名为Assignment 的模型。当我创建一个新的Assignment 记录并在其上调用_validators 时,这就是我得到的。
pry(main)> Assignment.new._validators
=>
{
:title=>[#<ActiveRecord::Validations::PresenceValidator:0x0000010e123900 @attributes= [:title], @options={}>],
:full_prompt=>[#<ActiveRecord::Validations::PresenceValidator:0x0000010e122e60 @attributes=[:full_prompt], @options={}>],
:submission_window=>[#<ActiveRecord::Validations::PresenceValidator:0x0000010e1223c0 @attributes=[:submission_window], @options={}>]
}
现在,当我添加 as_json 调用时,我得到了以下结果:
pry(main)> Assignment.new._validators.as_json
=>
{
"title"=>[{"attributes"=>["title"], "options"=>{}}],
"full_prompt"=>[{"attributes"=>["full_prompt"], "options"=>{}}],
"submission_window"=>[{"attributes"=>["submission_window"], "options"=>{}}]
}
如您所见,调用 as_json 会删除附加到模型属性的 validators 类型。
有没有人遇到过类似的情况和/或有解决方法?感谢您的帮助!
库尔特
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4