Sha256: e7e00bc3217419c98ce717e94c3ca97f92fd981fe88f792c4c7fa065dc68295a
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
# ActiveModelSerializers::Cancan Provides a simple integration between [CanCan](https://github.com/ryanb/cancan) and [Active Model Serializers](https://github.com/josevalim/active_model_serializers). ## Installation Add this line to your application's Gemfile: gem 'active_model_serializers-cancan' And then execute: $ bundle Or install it yourself as: $ gem install active_model_serializers-cancan ## Usage ### Associations `hasOne` and `hasMany` serializer macros now support an additional property, `authorize`. Associations with this property set to true will be authorized and filtered via CanCan. For example: ```ruby class PostSerializer < ActiveModel::Serializer attributes :title, :content has_one :author, authorize: true has_many :comments, authorize: true end ``` ### Helpers Serializers now also have access to the same helpers as controllers, namely `current_ability`, `can?`, and `cannot?`. ### Ability Serialization Use the `abilities` helper method to add an `abilities` key to the serialized data. For example: ```ruby class PostSerializer < ActiveModel::Serializer attributes :id abilities :show, :update end @post.as_json # { id: 1, abilities: { show: true, update: false } } ``` #### RESTful Alias If `:restful` is passed as an ability it will expand to the 7 default RESTful actions: `:index, :show, :new, :create, :edit, :update, :destroy` #### Overriding an Ability Abilities are checked by calling the `can_#{action}?` method. By overriding this method the result for the ability can be customized. For example: ```ruby class PostSerializer < ActiveModel::Serializer attributes :id abilities :show def can_show? session[:wizard_started] && can?(:show, object) end end ``` ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-cancan-0.0.2 | README.md |