1

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

@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'>]
4

1 回答 1

0

尝试:

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 为您做这件事,而不是自己构建对象。

希望有帮助!

于 2015-04-07T13:08:52.603 回答