Class: CabooseRets::SearchOption
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- CabooseRets::SearchOption
- Defined in:
- app/models/caboose_rets/search_option.rb
Class Method Summary collapse
- .results(str, count_per_name = 10) ⇒ Object
- .update_search_options ⇒ Object
- .update_search_options_for_field(name, field) ⇒ Object
Class Method Details
.results(str, count_per_name = 10) ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'app/models/caboose_rets/search_option.rb', line 48 def self.results(str, count_per_name = 10) q = ["select * from ( select name, field, value, row_number() over (partition by name order by field) as rownum from rets_search_options where lower(value) like ? ) tmp where rownum < #{count_per_name}", "%#{str}%"] rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q)) arr = rows.collect{ |row| { :name => row[0], :field => row[1], :value => row[2] }} return arr end |
.update_search_options ⇒ Object
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 |
# File 'app/models/caboose_rets/search_option.rb', line 6 def self. # Flag all for delete self.update_all(:flag_for_delete => true) names = { 'City' => ['city'], 'County' => ['county_or_parish'], 'Zip Code' => ['postal_code'], 'Schools' => ['elementary_school', 'middle_school', 'high_school'], 'MLS Area' => ['area'], 'Neighborhood' => ['subdivision'], 'Street Name' => ['street_name'], 'Property Type' => ['property_type'], 'MLS Number' => ['mls_number'] #'feature', #'location', } names.each do |name, fields| fields.each do |field| self.(name, field) end end # Delete all flagged self.where(:flag_for_delete => true).delete_all end |
.update_search_options_for_field(name, field) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/models/caboose_rets/search_option.rb', line 34 def self.(name, field) q = ["select distinct(#{field}) from rets_properties where (status = ? or status = ?)", 'Pending', 'Active'] rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q)) rows.each do |row| so = self.where(:name => name, :field => field, :value => row[0]).first if so.nil? self.create(:name => name, :field => field, :value => row[0]) else so.flag_for_delete = false so.save end end end |