Merge pull request #462 from fab/master

Generator now properly detects ApplicationSerializer
This commit is contained in:
Santiago Pastorino 2014-02-04 10:05:03 -08:00
commit d985e6424c
2 changed files with 24 additions and 5 deletions

View File

@ -73,10 +73,6 @@ Currently `ActiveModel::Serializers` expects objects to implement
read\_attribute\_for\_serialization. That's all you need to do to have
your POROs supported.
# ActiveModel::Serializer
All new serializers descend from ActiveModel::Serializer
# render :json
In your controllers, when you use `render :json`, Rails will now first search
@ -726,6 +722,29 @@ end
The caching interface uses `Rails.cache` under the hood.
# ApplicationSerializer
By default, new serializers descend from ActiveModel::Serializer. However, if you wish to share behaviour across your serializers you can create an ApplicationSerializer at ```app/serializers/application_serializer.rb```:
```ruby
class ApplicationSerializer < ActiveModel::Serializer
end
```
Any newly generated serializers will automatically descend from ApplicationSerializer.
```
$ rails g serializer post
```
now generates:
```ruby
class PostSerializer < ApplicationSerializer
attributes :id
end
````
# Design and Implementation Guidelines
## Keep it Simple

View File

@ -26,7 +26,7 @@ module Rails
if options[:parent]
options[:parent]
elsif (ns = Rails::Generators.namespace) && ns.const_defined?(:ApplicationSerializer) ||
defined?(::ApplicationSerializer)
(Object.const_get(:ApplicationSerializer) rescue nil)
'ApplicationSerializer'
else
'ActiveModel::Serializer'