diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index e5c985a..952a84d 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -46,7 +46,9 @@ require_relative '../../find_by_contents' options.merge!(fields.symbolize_keys.slice(:only, :except)) end rescue - options[:only] = Array.wrap(params[:fields]) + fields = params[:fields] + fields = fields.split(',') if fields.kind_of?(String) + options[:only] = Array.wrap(fields) end end present model, options diff --git a/test/unit/api/helpers_test.rb b/test/unit/api/helpers_test.rb index daa9398..5c0e4d0 100644 --- a/test/unit/api/helpers_test.rb +++ b/test/unit/api/helpers_test.rb @@ -209,11 +209,18 @@ class APIHelpersTest < ActiveSupport::TestCase should 'fallback to array when fields parameter is not a json when calling present partial' do model = mock - params[:fields] = 'name' + params[:fields] = ['name'] expects(:present).with(model, {:only => ['name']}) present_partial(model, {}) end + should 'fallback to comma separated string when fields parameter is not an array when calling present partial' do + model = mock + params[:fields] = 'name,description' + expects(:present).with(model, {:only => ['name', 'description']}) + present_partial(model, {}) + end + should 'accept json as fields parameter when calling present partial' do model = mock params[:fields] = {only: [:name, {user: [:login]}]}.to_json -- libgit2 0.21.2