Module: ClippedAssetRoles::PagesControllerExtensions
- Defined in:
- lib/clipped_asset_roles/pages_controller_extensions.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#update_asset_roles_from_params ⇒ Object
alias_method_chain :create, :asset_roles alias_method_chain :update, :asset_roles alias_method_chain :destroy, :asset_roles.
Class Method Details
.included(klazz) ⇒ Object
4 5 6 7 8 |
# File 'lib/clipped_asset_roles/pages_controller_extensions.rb', line 4 def self.included(klazz) klazz.class_eval { after_filter :update_asset_roles_from_params, :only => [:create, :update, :destroy] } end |
Instance Method Details
#update_asset_roles_from_params ⇒ Object
alias_method_chain :create, :asset_roles alias_method_chain :update, :asset_roles alias_method_chain :destroy, :asset_roles
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/clipped_asset_roles/pages_controller_extensions.rb', line 13 def update_asset_roles_from_params params.select{|k,v| k =~ /asset_role_/}.each do |k,v| role_name = k[/asset_role_(.*)/, 1] @page.(role_name).each do |att| att.asset_roles.select{|r| r.role == role_name}.first.destroy end if v.class != String v.each do |asset_id, on| AssetRole.create(:page_attachment_id => asset_id, :role => role_name) end else AssetRole.create(:page_attachment_id => v, :role => role_name) end end end |