/
favorites_controller.rb
38 lines (31 loc) · 1.11 KB
/
favorites_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class FavoritesController < ApplicationController
before_filter :authorize
def index
@web_accounts = current_user.favorites.where(:item_type => 'WebAccount').map(&:item)
@generic_accounts = current_user.favorites.where(:item_type => 'GenericAccount').map(&:item)
@licenses = current_user.favorites.where(:item_type => 'SoftwareLicense').map(&:item)
@notes = current_user.favorites.where(:item_type => 'Note').map(&:item)
end
def create
@item = get_item
current_user.favorite!(@item)
if params[:item_type] =~ /Account\z/
redirect_to [ :accounts, @item ], :notice => "#{@item.title} added to favorites"
else
redirect_to @item, :notice => "#{@item.title} added to favorites"
end
end
def destroy
@item = get_item
current_user.defavorite!(@item)
if params[:item_type] =~ /Account\z/
redirect_to [ :accounts, @item ], :notice => "#{@item.title} removed from favorites"
else
redirect_to @item, :notice => "#{@item.title} removed from favorites"
end
end
private
def get_item
params[:item_type].constantize.find(params[:item_id])
end
end