У меня есть хэш, который я использую regex on, чтобы выбрать, какие пары ключ/значение я хочу. Вот метод, который я написал:Ruby regex, выбирая несколько слов одновременно
def extract_gender_race_totals(gender, race)
totals = @data.select {|k,v| k.to_s.match(/(#{gender})(#{race})/)}
temp = 0
totals.each {|key, value| temp += value}
temp
end
хэш выглядит следующим образом:
@data = {
:number_of_african_male_senior_managers=>2,
:number_of_coloured_male_senior_managers=>0,
:number_of_indian_male_senior_managers=>0,
:number_of_white_male_senior_managers=>0,
:number_of_african_female_senior_managers=>0,
:number_of_coloured_female_senior_managers=>0,
:number_of_indian_female_senior_managers=>0,
:number_of_white_female_senior_managers=>0,
:number_of_african_male_middle_managers=>2,
:number_of_coloured_male_middle_managers=>0,
:number_of_indian_male_middle_managers=>0,
:number_of_white_male_middle_managers=>0,
:number_of_african_female_middle_managers=>0,
:number_of_coloured_female_middle_managers=>0,
:number_of_indian_female_middle_managers=>0,
:number_of_white_female_middle_managers=>0,
:number_of_african_male_junior_managers=>0,
:number_of_coloured_male_junior_managers=>0,
:number_of_indian_male_junior_managers=>0,
:number_of_white_male_junior_managers=>0,
:number_of_african_female_junior_managers=>0,
:number_of_coloured_female_junior_managers=>0,
:number_of_indian_female_junior_managers=>0,
:number_of_white_female_junior_managers=>0
}
но он вновь заполняется данными после того, как SQL-запроса.
Я хотел бы сделать так, чтобы ключ должен содержать как гонку, так и пол, чтобы он что-то возвращал. В противном случае он должен вернуть 0. Правильно ли это или синтаксис регулярного выражения?
Это возвращает 0 для всех, чего не должно быть.
Так пример будет
%td.total_cell= @ee_demographics_presenter.extract_gender_race_totals("male","african")
Это вернет 4, есть 4 Африки, мужчины-менеджеры.
Введите здесь пример ввода и желаемого результата. – megas
это немного помогает? – TheLegend
При попытке создать регулярные выражения я предлагаю проверить http://www.rubular.com/. – gmalette