пытается передать правило переменной в перечислителе выбора
match = companies.select{ |x| x[rule] > 10 }
data.each do |item|
item.each do |file_name,filter_settings|
if file_name == "out1_1x.csv"
output_file = file_name
current_filter = filter_settings
rule = filter_settings[:rule].to_sym
condition = filter_settings[:condition]
amount = filter_settings[:amount]
p rule # here i have :price
match = companies.select{ |x| x[rule] > 10 }
puts match
end
end
end
но получаю ошибку:
неопределенный метод '>'
для нулевого класса, даже если в правиле присваивается значение.
companies.select{ |x| x[:price] > 10 }
Это назначение в порядке.
Компании определяются как массив хэшей со структурой:
{:name=>"ABC company", :code=>"RDCX", :price=>33,:volume=>79560}
{:name=>"DEF", :code=>"FFF", :price=>41, :volume=>367491}
Я также хотел бы спросить, есть ли какая-либо опция, как передать в перечислитель выбора «полный набор параметров» из «внешних переменных - правило, условие, количество»?
что-то вроде
match = companies.select{ |x| x[rule] condition amount }
Where condition is - ">", "<" "=" ?
Большое спасибо.