Я не совсем понимаю:
Почему в Хеше из базы данных мне приходят "задвоенные" параметры?
>result = db.execute('SELECT * FROM people WHERE company_id = ?',id)
>puts result.to_s
=> {"name"=>"А", "family_name"=>"Б", "phone"=>2, "email"=>"mail@mail.ru", "birthday"=>"23.23.1923", "company_id"=>1, 0=>"A", 1=>"Б", 2=>2, 3=>"mail@mail.ru", 4=>"23.23.1923", 5=>1}
Как сформировать запрос в базу данных, чтобы можно было достучаться через вложенные блоки к value и вывести его через key?
result.each do |line|
line.each_pair do |key,value|
printf value if key == 'name'
.
.
.
end
end
Помогите, пожалуйста. Или направьте на путь истинный. Заранее спасибо.
PS: решил немного усложнить домашнюю 12-1 и ... усложнил =)
PPS: на всякий случай Gihub
PPPS: Второй кусок кода не хотел упорно обрамляться, так что за оформление сорри.
Это фишка гема sqlite насколько понимаю.
{"name"=>"А", "family_name"=>"Б", "phone"=>2, "email"=>"mail@mail.ru", "birthday"=>"23.23.1923", "company_id"=>1, 0=>"A", 1=>"Б", 2=>2, 3=>"mail@mail.ru", 4=>"23.23.1923", 5=>1}
Так вы можете и через именнованные параметры достать hash['name']
и по порядку как в массиве hash[0]
.
Я не совсем понял вопрос, зачем вам какие-то вложенные ключи и пр.? Вот же доступны все результаты строчкой выше, хотите по имени ключа доставайте, хотите по индексу.
Опционально можно именнованные результаты отключить: https://stackoverflow.com/a/31993564
ПОжалуйста пользуйтесь тремя "тиками" для разметки кода (посмотрите как я обновил ваш пост) и оставляйте пустые строки ДО и ПОСЛЕ блока с кодом.
Символ гравис называется https://habrahabr.ru/post/25531/