Module: Redmine::Acts::Searchable::ClassMethods
- Defined in:
- vendor/plugins/acts_as_searchable/lib/acts_as_searchable.rb
Instance Method Summary
-
- (Object) acts_as_searchable(options = {})
Options:
- :columns - a column or an array of columns to search
- :project_key - project foreign key (default to project_id)
- :date_column - name of the datetime column (default to created_on)
- :sort_order - name of the column used to sort results (default to :date_column or created_on)
- :permission - permission required to search the model (default to :view_"objects").
Instance Method Details
- (Object) acts_as_searchable(options = {})
Options:
- :columns - a column or an array of columns to search
- :project_key - project foreign key (default to project_id)
- :date_column - name of the datetime column (default to created_on)
- :sort_order - name of the column used to sort results (default to :date_column or created_on)
- :permission - permission required to search the model (default to :view_"objects")
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'vendor/plugins/acts_as_searchable/lib/acts_as_searchable.rb', line 32 def acts_as_searchable( = {}) return if self.included_modules.include?(Redmine::Acts::Searchable::InstanceMethods) cattr_accessor :searchable_options self. = if [:columns].nil? raise 'No searchable column defined.' elsif ![:columns].is_a?(Array) [:columns] = [] << [:columns] end [:project_key] ||= "#{table_name}.project_id" [:date_column] ||= "#{table_name}.created_on" [:order_column] ||= [:date_column] # Permission needed to search this model [:permission] = "view_#{self.name.underscore.pluralize}".to_sym unless .has_key?(:permission) # Should we search custom fields on this model ? [:search_custom_fields] = !reflect_on_association(:custom_values).nil? send :include, Redmine::Acts::Searchable::InstanceMethods end |