Module: ErpApp::Extensions::ActiveRecord::HasUserPreferences::InstanceMethods
- Defined in:
- lib/erp_app/extensions/active_record/has_user_preferences.rb
Instance Method Summary collapse
- #get_user_preference(user, preference_type_iid) ⇒ Object
- #preferences(user) ⇒ Object
- #set_user_preference(user, preference_type_iid, preference_option_lookup) ⇒ Object
Instance Method Details
#get_user_preference(user, preference_type_iid) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/erp_app/extensions/active_record/has_user_preferences.rb', line 56 def get_user_preference(user, preference_type_iid) preference_type = PreferenceType.find_by_internal_identifier(preference_type_iid.to_s) preference = find_user_preference(user, preference_type) if preference.nil? preference_type.default_preference_option.value else preference.preference_option.value end end |
#preferences(user) ⇒ Object
25 26 27 |
# File 'lib/erp_app/extensions/active_record/has_user_preferences.rb', line 25 def preferences(user) self.user_preferences.includes([:preference]).where('user_id = ?', user.id).map(&:preference) end |
#set_user_preference(user, preference_type_iid, preference_option_lookup) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/erp_app/extensions/active_record/has_user_preferences.rb', line 29 def set_user_preference(user, preference_type_iid, preference_option_lookup) preference_type = PreferenceType.find_by_internal_identifier(preference_type_iid.to_s) preference_option = nil #preference option can be set using #:default [symbol which will set to default for preference type] #:preference_option_iid [the internal identifier for the preference option] #:value [the value of the preference_option] preference_option = preference_type.default_option if preference_option_lookup == :default preference_option = preference_type..where('internal_identifier = ?', preference_option_lookup.to_s).first if preference_option.nil? preference_option = preference_type..where('value = ?', preference_option_lookup.to_s).first if preference_option.nil? if preference_option.nil? raise 'Invalid option for preference type' else preference = find_user_preference(user, preference_type) unless preference.nil? preference.preference_option = preference_option preference.save else preference = Preference.create(:preference_type => preference_type, :preference_option => preference_option) self.user_preferences << UserPreference.create(:preference => preference, :user => user) self.save end end end |