1

In controller I use pluck method to get id and name from my database

@user1 = User.where(name: 'Alex').pluck(:id, :name).first 
@user2 = User.where(name: 'Alex').pluck(:id, :name)

It return array

@user1 = `[3, 'Alex']` 
@user2 = [[3,'Alex'],[4, 'Alex']]

How can I make object from array, like:

@user1 = <User id:3, name:'Alex'> 
@user2 = [<User id:3, name:'Alex'>, <User id:4, name:'Alex'>]
user3563581
  • 67
  • 1
  • 7

1 Answers1

0

Try:

users = User.where(name: 'Alex').pluck(:id, :name).map do |id, name|
  User.new({ id: id, name: name })
end

Or from provided variables:

@user1_obj = User.new(id: @user1[0], name: @user1[1])
@user2_arr = @user2.map { |params| User.new(id: params[0], name: params[1]) }

Please, be advised, you should let ORM do the thing for you, rather building objects on your own.

Hope that helps!

Paweł Dawczak
  • 9,519
  • 2
  • 24
  • 37