diff --git a/app/controllers/locomotive/api/content_entries_controller.rb b/app/controllers/locomotive/api/content_entries_controller.rb index bcde3b7a..a9497004 100644 --- a/app/controllers/locomotive/api/content_entries_controller.rb +++ b/app/controllers/locomotive/api/content_entries_controller.rb @@ -5,7 +5,7 @@ module Locomotive before_filter :set_content_type def index - @content_entries = @content_type.list_or_group_entries + @content_entries = @content_type.ordered_entries respond_with @content_entries end diff --git a/app/presenters/locomotive/content_entry_presenter.rb b/app/presenters/locomotive/content_entry_presenter.rb index f08a3b50..1b2e5722 100644 --- a/app/presenters/locomotive/content_entry_presenter.rb +++ b/app/presenters/locomotive/content_entry_presenter.rb @@ -36,16 +36,21 @@ module Locomotive super + self.filtered_custom_fields_methods + default_list end - def method_missing(meth, *arguments, &block) - if self.source.custom_fields_methods.include?(meth.to_s) - if self.source.is_a_custom_field_many_relationship?(meth.to_s) - # go deeper - self.source.send(meth).map { |entry| entry.to_presenter(:depth => self.depth + 1) } - else - self.source.send(meth) rescue nil + def as_json(methods = nil) + methods ||= self.included_methods + {}.tap do |hash| + methods.each do |meth| + hash[meth]= (if self.source.custom_fields_methods.include?(meth.to_s) + if self.source.is_a_custom_field_many_relationship?(meth.to_s) + # go deeper + self.source.send(meth).map { |entry| entry.to_presenter(:depth => self.depth + 1) } + else + self.source.send(meth) rescue nil + end + else + self.send(meth.to_sym) rescue nil + end) end - else - super end end