Sha256: f77d00f21bfee4546deac5ce6ce05633a5fa38321d7f8ee2073bf150dfcab354
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
require 'active_record' ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') ActiveRecord::Schema.define do create_table :posts, force: true do |t| t.string :title t.text :body t.references :author t.timestamps null: false end create_table :authors, force: true do |t| t.string :name t.string :code t.timestamps null: false end create_table :comments, force: true do |t| t.text :contents t.references :author t.references :post t.timestamp null: false end end module ARModels class Post < ActiveRecord::Base has_many :comments belongs_to :author end class Comment < ActiveRecord::Base belongs_to :post belongs_to :author end class Author < ActiveRecord::Base has_many :posts end class PostDeserializer < FunWithJsonApi::Deserializer resource_class Post attribute :title attribute :body has_many :comments, -> { CommentDeserializer } belongs_to :author, -> { AuthorDeserializer } end class CommentDeserializer < FunWithJsonApi::Deserializer resource_class Comment attribute :contents belongs_to :author, -> { AuthorDeserializer } end class AuthorSerializer < ::ActiveModel::Serializer type 'person' attribute :name has_many :posts end class AuthorDeserializer < FunWithJsonApi::Deserializer type 'person' id_param :code resource_class Author attribute :name has_many :posts, -> { PostDeserializer } end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fun_with_json_api-0.0.13 | spec/fixtures/active_record.rb |
fun_with_json_api-0.0.11.3 | spec/fixtures/active_record.rb |
fun_with_json_api-0.0.11.2 | spec/fixtures/active_record.rb |