to_hash¶ ↑
Easy and powerful object to hash serialization tool. It may be used together with to_json/to_xml/to_yaml methods.
Usage¶ ↑
Take a look at the example below:
class Category < ActiveRecord::Base def name #... end end class Comment < ActiveRecord::Base def author_name #... end end class Post < ActiveRecord::Base has_one :category has_many :comments include ToHash def title #... end def body #... end end # simple serialization Post.first.to_hash(:title, :body) #=> { :title => "Post Title", :body => "Post body" } # serialization with key changing Post.first.to_hash(:title => :title, :content => :body) #=> { :title => "Post Title", :content => "Post body" } # simple serialization of nested objects Post.first.to_hash(:title, [:category, :name]) #=> { :title => "Post Title", :category => { :name => "Category Name" } } # serialization of nested objects with key changing Post.first.to_hash(:title, [:category, { :categoryName => :name }]) #=> { :title => "Post Title", :category => { :categoryName => "Category Name" } } # serialization of nested arrays Post.first.to_hash(:title, [:comments, { :author => :author_name }]) #=> { :title => "Post Title", :comments => [{ :author => "John Doe" }, { :author => "Jim Smith" }] } # creating JSON Post.first.to_hash(:t => :title, :b => :body).to_json #=> "{\"t\": \"Post Title\", \"b\": \"Post body\"}"
-
ToHash module doesn’t require the class to inherit from ActiveRecord::Base - it can be used with any other classes as well.
License¶ ↑
Copyright © 2009 Jakub Kuźma, released under the MIT license