Commit fdb13b89

mo khan <mo@mokhan.ca>
2014-11-21 21:24:21
side load data in json api.
1 parent 6ecba9c
app/views/api/v2/cakes/_cake.json.jbuilder
@@ -1,8 +1,10 @@
-json.id cake.id
-json.name cake.name
-json.description cake.story
-json.author cake.user.id
-json.category cake.category.id
-json.photos cake.photos.pluck(:id)
-json.createdAt cake.created_at
-json.updatedAt cake.updated_at
+json.cache! ['v2', cake] do
+  json.id cake.id
+  json.name cake.name
+  json.description cake.story
+  json.author cake.user.id
+  json.category cake.category.id
+  json.photos cake.photos.pluck(:id)
+  json.createdAt cake.created_at
+  json.updatedAt cake.updated_at
+end
app/views/api/v2/cakes/index.json.jbuilder
@@ -1,7 +1,14 @@
 json.cakes @cakes do |cake|
-  json.cache! ['v2', cake] do
-    json.partial! 'cake', cake: cake
-  end
+  json.partial! 'cake', cake: cake
+end
+json.users @cakes.map(&:user) do |user|
+  json.partial! user, user: user
+end
+json.photos @cakes.map { |x| x.photos }.flatten do |photo|
+  json.partial! photo, photo: photo
+end
+json.categories Category.all do |category|
+  json.partial! category, category: category
 end
 json.meta do
   json.totalPages @cakes.total_pages
app/views/api/v2/cakes/show.json.jbuilder
@@ -1,3 +1,12 @@
 json.cake do
   json.partial! 'cake', cake: @cake
 end
+json.users [@cake.user] do |user|
+  json.partial! user, user: user
+end
+json.photos @cake.photos do |photo|
+  json.partial! photo, photo: photo
+end
+json.categories [@cake.category] do |category|
+  json.partial! category, category: category
+end
app/views/api/v2/categories/_category.json.jbuilder
@@ -1,5 +1,7 @@
-json.id category.id
-json.name category.name
-json.slug category.slug
-json.createdAt category.created_at
-json.updatedAt category.updated_at
+json.cache! ['v2', category] do
+  json.id category.id
+  json.name category.name
+  json.slug category.slug
+  json.createdAt category.created_at
+  json.updatedAt category.updated_at
+end
app/views/api/v2/photos/_photo.json.jbuilder
@@ -1,6 +1,8 @@
-json.id photo.id
-json.thumbUrl photo.url_for(:thumb)
-json.largeUrl photo.url_for(:large)
-json.originalUrl photo.url_for(:original)
-json.createdAt photo.created_at
-json.updatedAt photo.updated_at
+json.cache! ['v2', photo] do
+  json.id photo.id
+  json.thumbUrl photo.url_for(:thumb)
+  json.largeUrl photo.url_for(:large)
+  json.originalUrl photo.url_for(:original)
+  json.createdAt photo.created_at
+  json.updatedAt photo.updated_at
+end
app/views/api/v2/users/_user.json.jbuilder
@@ -1,4 +1,6 @@
-json.id user.id
-json.name user.name
-json.createdAt user.created_at
-json.updatedAt user.updated_at
+json.cache! ['v2', user] do
+  json.id user.id
+  json.name user.name
+  json.createdAt user.created_at
+  json.updatedAt user.updated_at
+end