diff options
| author | mo <mo.khan@gmail.com> | 2017-09-24 14:46:15 -0600 |
|---|---|---|
| committer | mo <mo.khan@gmail.com> | 2017-09-24 14:46:15 -0600 |
| commit | ca86a48736f6d4722b3c214af65a2ccd70b1cb43 (patch) | |
| tree | ae198dfe0d25b5d4322e6b8a0fdcc506ca5019da | |
| parent | c14120056549765beb35f5a35f8c76e0e8ef7397 (diff) | |
use jbuilder to render backbone json.
| -rw-r--r-- | app/helpers/application_helper.rb | 8 | ||||
| -rw-r--r-- | app/views/application/_backbone_collection.html.erb | 6 | ||||
| -rw-r--r-- | app/views/application/json/_categories.jbuilder | 7 | ||||
| -rw-r--r-- | app/views/application/json/_tags.jbuilder | 7 |
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 |
