summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2017-09-24 14:46:15 -0600
committermo <mo.khan@gmail.com>2017-09-24 14:46:15 -0600
commitca86a48736f6d4722b3c214af65a2ccd70b1cb43 (patch)
treeae198dfe0d25b5d4322e6b8a0fdcc506ca5019da
parentc14120056549765beb35f5a35f8c76e0e8ef7397 (diff)
use jbuilder to render backbone json.
-rw-r--r--app/helpers/application_helper.rb8
-rw-r--r--app/views/application/_backbone_collection.html.erb6
-rw-r--r--app/views/application/json/_categories.jbuilder7
-rw-r--r--app/views/application/json/_tags.jbuilder7
4 files changed, 24 insertions, 4 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 893abc5d..efb8ccad 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -40,6 +40,12 @@ module ApplicationHelper
end
def backbone_collection_for(items)
- render partial: 'backbone_collection', locals: { items: items }
+ safe_name = items.name.split('::').last
+ collection_name = safe_name.pluralize
+ render partial: 'backbone_collection', locals: {
+ collection_name: collection_name,
+ items: items,
+ partial_name: collection_name.downcase,
+ }
end
end
diff --git a/app/views/application/_backbone_collection.html.erb b/app/views/application/_backbone_collection.html.erb
index a806939f..85520ba6 100644
--- a/app/views/application/_backbone_collection.html.erb
+++ b/app/views/application/_backbone_collection.html.erb
@@ -1,5 +1,5 @@
<% cache items do %>
-<%= javascript_tag do %>
-csx.<%= items.name.split('::').last.pluralize %> = new Backbone.Collection(<%= items.to_json.html_safe %>);
-<% end %>
+ <%= javascript_tag do %>
+ csx.<%= collection_name %> = new Backbone.Collection(<%= raw render partial: "application/json/#{partial_name}", locals: { items: items } %>);
+ <% end %>
<% end %>
diff --git a/app/views/application/json/_categories.jbuilder b/app/views/application/json/_categories.jbuilder
new file mode 100644
index 00000000..f766b88a
--- /dev/null
+++ b/app/views/application/json/_categories.jbuilder
@@ -0,0 +1,7 @@
+json.cache! items do
+ json.array! items do |category|
+ json.id category.id
+ json.name category.name
+ json.slug category.slug
+ end
+end
diff --git a/app/views/application/json/_tags.jbuilder b/app/views/application/json/_tags.jbuilder
new file mode 100644
index 00000000..8b0ecc85
--- /dev/null
+++ b/app/views/application/json/_tags.jbuilder
@@ -0,0 +1,7 @@
+json.cache! items do
+ json.array! items do |tag|
+ json.id tag.id
+ json.name tag.name
+ json.count tag.taggings_count
+ end
+end