Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Ruby on Rails上的数组中获取对象_Ruby_Arrays_Object_Ruby On Rails 4_Pluck - Fatal编程技术网

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

如何从Ruby on Rails上的数组中获取对象,ruby,arrays,object,ruby-on-rails-4,pluck,Ruby,Arrays,Object,Ruby On Rails 4,Pluck,在控制器中,我使用Pull方法从数据库中获取id和名称 @user1 = User.where(name: 'Alex').pluck(:id, :name).first @user2 = User.where(name: 'Alex').pluck(:id, :name) 它返回数组 @user1 = `[3, 'Alex']` @user2 = [[3,'Alex'],[4, 'Alex']] 如何从数组生成对象,如: @user1 = <User id:3, name:'Al

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

@user1 = User.where(name: 'Alex').pluck(:id, :name).first 
@user2 = User.where(name: 'Alex').pluck(:id, :name)
它返回数组

@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'>]
@user1=
@user2=[,]
试试:

或从提供的变量:

@user1_obj = User.new(id: @user1[0], name: @user1[1])
@user2_arr = @user2.map { |params| User.new(id: params[0], name: params[1]) }
请注意,您应该让ORM为您做这件事,而不是自己构建对象


希望有帮助

但是pull返回一个数组,而不是散列。还是我错了?啊是的。。。我被你提供的代码示例弄糊涂了。我刚刚更新了答案!删除
pulk
,即
@user1=User.where(name:'Alex')。第一个
@Stefan,但比第一个更快,因为它不会实例化记录。如果您在事后自己实例化记录,这是毫无意义的。
@user1_obj = User.new(id: @user1[0], name: @user1[1])
@user2_arr = @user2.map { |params| User.new(id: params[0], name: params[1]) }