如何从 Rails 上的数组 Ruby 获取对象

How to get an object from an array Ruby on Rails

在控制器中,我使用 pluck 方法从我的数据库中获取 ID 和名称

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

它return数组

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

如何从数组创建对象,例如:

@user1 = <User id:3, name:'Alex'> 
@user2 = [<User id:3, name:'Alex'>, <User id:4, name:'Alex'>]

尝试:

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

或从提供的变量:

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

请注意,您应该让 ORM 为您做事,而不是自己构建对象。

希望对您有所帮助!