在控制器中我使用pluck方法从我的数据库中获取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'>]
答案 0 :(得分: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为你做这件事,而不是自己建造物品。
希望有所帮助!