Makes passed in options accessible inside serializers

In some cases, we want to pass arguments from the controller and we want
to serializer a resource according to that. This allows serializers to
use the `options` method to retrieve whatever was passed in via
arguments.
This commit is contained in:
Alexandre de Oliveira
2015-03-11 14:53:57 -03:00
parent b8df4b57a1
commit 48650ecf7e
3 changed files with 28 additions and 0 deletions

View File

@@ -45,6 +45,10 @@ class ProfileSerializer < ActiveModel::Serializer
attributes :name, :description
urls :posts, :comments
def arguments_passed_in?
options[:my_options] == :accessible
end
end
class ProfilePreviewSerializer < ActiveModel::Serializer

View File

@@ -0,0 +1,21 @@
require 'test_helper'
module ActiveModel
class Serializer
class OptionsTest < Minitest::Test
def setup
@profile = Profile.new(name: 'Name 1', description: 'Description 1')
end
def test_options_are_accessible
@profile_serializer = ProfileSerializer.new(@profile, my_options: :accessible)
assert @profile_serializer.arguments_passed_in?
end
def test_no_option_is_passed_in
@profile_serializer = ProfileSerializer.new(@profile)
refute @profile_serializer.arguments_passed_in?
end
end
end
end