Module: C80Yax::DataHelper
- Includes:
- ActiveRecord
- Included in:
- AdminDataController
- Defined in:
- app/helpers/c80_yax/data_helper.rb
Overview
хелпер, помогающий с выборкой данных для товаров из категории “строительные материалы”
Instance Method Summary collapse
-
#stdh_collect_all_values(prop_name_id, sub_cat_id) ⇒ Object
собрать все значения свойства prop_name_id из подкатегории sub_cat.
-
#stdh_get_strsubcat_propnames(strsubcat_id) ⇒ Object
выдать все характеристики, присущие данной категории, вместе с единицами измерений.
Instance Method Details
#stdh_collect_all_values(prop_name_id, sub_cat_id) ⇒ Object
собрать все значения свойства prop_name_id из подкатегории sub_cat
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 |
# File 'app/helpers/c80_yax/data_helper.rb', line 9 def stdh_collect_all_values(prop_name_id, sub_cat_id) # +---------------------+ # | prop_23 | # +---------------------+ # | 215 x 102 x 65 мм | # | 215 x 48 x 65 мм | # | 250 x 85 x 65 мм | # | 254 x 95 x 65 мм | # | 290 x 90 x 52 мм | # | 528 x 108 x 37 мм | # +---------------------+ table_name = "strcat_#{sub_cat_id}_items" column_name = "prop_#{prop_name_id}" sql = " SELECT #{table_name}.#{column_name} FROM #{table_name} GROUP by #{table_name}.#{column_name}; " ActiveRecord::Base.connection.execute(sql) # => records array end |
#stdh_get_strsubcat_propnames(strsubcat_id) ⇒ Object
выдать все характеристики, присущие данной категории, вместе с единицами измерений
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/helpers/c80_yax/data_helper.rb', line 36 def stdh_get_strsubcat_propnames(strsubcat_id) # +----+----------------+----------------------------+-----------+ # | id | title | is_excluded_from_filtering | uom_title | # +----+----------------+----------------------------+-----------+ # | 2 | Цена | 0 | руб. | # | 3 | Объём | 0 | мл | # | 4 | Вкус | 0 | NULL | # | 5 | VG/PG | 0 | NULL | # | 6 | Никотин | 0 | мг | # | 7 | Страна | 0 | NULL | # | 19 | Бренд | 0 | NULL | # +----+----------------+----------------------------+-----------+ # {"id"=>2, "title"=>"Цена", "is_excluded_from_filtering"=>0, "uom_title"=>"руб."}, # {"id"=>3, "title"=>"Объём", "is_excluded_from_filtering"=>0, "uom_title"=>"мл"}, # {"id"=>4, "title"=>"Вкус", "is_excluded_from_filtering"=>0, "uom_title"=>nil}, # {"id"=>5, "title"=>"VG/PG", "is_excluded_from_filtering"=>0, "uom_title"=>nil}, # {"id"=>6, "title"=>"Никотин", "is_excluded_from_filtering"=>0, "uom_title"=>"мг"}, # {"id"=>7, "title"=>"Страна", "is_excluded_from_filtering"=>0, "uom_title"=>nil}, # {"id"=>19, "title"=>"Бренд", "is_excluded_from_filtering"=>0, "uom_title"=>nil} Rails.logger.debug '[TRACE] <stdh_get_strsubcat_propnames> BEGIN' sql = " SELECT `c80_yax_prop_names`.`id`, `c80_yax_prop_names`.`title`, `c80_yax_prop_names`.`is_excluded_from_filtering`, `c80_yax_uoms`.`title` as `uom_title` FROM `c80_yax_prop_names` INNER JOIN `c80_yax_prop_names_strsubcats` ON `c80_yax_prop_names`.`id` = `c80_yax_prop_names_strsubcats`.`prop_name_id` LEFT OUTER JOIN `c80_yax_uoms` ON `c80_yax_uoms`.`id` = `c80_yax_prop_names`.`uom_id` WHERE `c80_yax_prop_names_strsubcats`.`strsubcat_id` = #{strsubcat_id}; " result = [] rows = Base.connection.execute(sql) rows.each(:as => :hash) do |row| result << row end Rails.logger.debug '[TRACE] <stdh_get_strsubcat_propnames> END' result end |