Consider evaluating association in serializer context

For discussion:

Consider evaluating association in serializer context

That way, associations are really just anything that
can be conditionally included.  They no longer
have to actually be methods on the object or serializer.

e.g.

```diff
has_many :comments do
- last(1)
+ Comment.active.for_serialization(object).last(1)
end
```
This commit is contained in:
Benjamin Fleischer
2015-12-16 00:03:55 -06:00
parent 12cd190cfc
commit d7de53ce30
4 changed files with 23 additions and 6 deletions

View File

@@ -33,6 +33,7 @@ end
class ProfileSerializer < ActiveModel::Serializer
attributes :name, :description
# TODO: is this used anywhere?
def arguments_passed_in?
instance_options[:my_options] == :accessible
end
@@ -75,6 +76,7 @@ PostSerializer = Class.new(ActiveModel::Serializer) do
Blog.new(id: 999, name: 'Custom blog')
end
# TODO: is this used anywhere?
def custom_options
instance_options
end

View File

@@ -129,7 +129,7 @@ module ActiveModel
class InlineAssociationTestPostSerializer < ActiveModel::Serializer
has_many :comments
has_many :comments, key: :last_comments do
last(1)
object.comments.last(1)
end
end