Module: ClippedAssetRoles::PagesControllerExtensions

Defined in:
lib/clipped_asset_roles/pages_controller_extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

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_paramsObject

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.attachments_with_role(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