如何从 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 为您做事,而不是自己构建对象。
希望对您有所帮助!
在控制器中,我使用 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 为您做事,而不是自己构建对象。
希望对您有所帮助!