Я хочу понять:
- Почему exec_query возвращает массив с объектом при отображении с помощью функции map?
- Как происходит назначение переменных id и nome с помощью mapфункция?
У меня есть этот код:
produto = ActiveRecord::Base.connection.exec_query("SELECT * FROM produtos")
Возврат продукции
#<ActiveRecord::Result:0xb774bc8 @columns=["id", "nome"], @rows=[[1, "yuri"], [2, "Igor"], [3, "Iran"], [4, "Hotaviano"], [5, "Maria"], [6, "José"], [7, "Mateus"], [8, "kaun"]], @hash_rows=nil, @column_types={}>
Когда я это сделаю:
produto.map { |p| Produto.new(p) }
Возвращает следующее:
[
#<Produto:0xad8fd60 @id=1, @nome="yuri">,
#<Produto:0xad8fbe4 @id=2, @nome="Igor">,
#<Produto:0xad8fbd0 @id=3, @nome="Iran">,
#<Produto:0xad8fb1c @id=4, @nome="Hotaviano">,
#<Produto:0xad8facc @id=5, @nome="Maria">,
#<Produto:0xad8f9b4 @id=6, @nome="José">,
#<Produto:0xad8f9a0 @id=7, @nome="Mateus">,
#<Produto:0xad8f784 @id=8, @nome="kaun">
]