I could guess that the method as_json doesn't intend to serialize your
module/class name. One option is to provide inside each class an attirbute
with the name of the validator, i.e. "validation = self.name"




2014-07-26 20:45 GMT-03:00 Kurt Mueller <[email protected]>:

> Hey guys,
>
> I've been working with Rails and a number of frontend js frameworks and
> libs, including Ember, Angular, and React. While all three libraries are
> powerful in their own regard, one pain point (for me at least) has always
> been form validation. I've always hated having to keep my model validations
> (in Rails) in sync with my form validations (in Ember/Angular/React).
>
> Lately, I've been attempting to serialize a model's validators into json.
> However, while calling as_json on a record will give me back a json hash,
> it doesn't give me the type of validators for each attribute.
>
> For example, let's say I have a model called Assignment. When I create a
> new Assignment record and call _validators on it, this is what I get.
>
> 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={}>]
> }
>
> Now here's what I get when I add on the as_json call:
>
> pry(main)> Assignment.new._validators.as_json
> =>
> {
>  "title"=>[{"attributes"=>["title"], "options"=>{}}],
>  "full_prompt"=>[{"attributes"=>["full_prompt"], "options"=>{}}],
>  "submission_window"=>[{"attributes"=>["submission_window"], "options"
> =>{}}]
> }
>
>
> As you can see, calling as_json removes what types of validators were
> attached to each model attribute.
>
> Has anybody run into a similar situation and/or has a workaround? Thanks
> for any help.
>
> Kurt
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/972fd145-9b6b-46ee-90c9-289035a1c6ad%40googlegroups.com
> <https://groups.google.com/d/msgid/rubyonrails-talk/972fd145-9b6b-46ee-90c9-289035a1c6ad%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Att,
*Antônio Augusto de Sousa Britto*
*Systems Analyst & Software Developer*
*+553491382738*

<https://www.facebook.com/augustobr>  <https://twitter.com/xtrdev>
<http://br.linkedin.com/in/antoniobr/>  <https://github.com/antoniosb>
<https://plus.google.com/u/0/111953897116031502239/>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAK6FffJsyFKc4AHBo0-tYoQWjohY5Nq9Qt%2BqRkUCindTHGycKw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to