在rails 5中,我编写了一个类似User.where("id = #{current_user.id}").include_associations.order(created_at: :desc)
这会返回[#<User id: 15, name: "Shruthi", ...>]
等列表。
如何在此处仅获取activerecord数据(不需要数组)?
我想要一个像#<User id: 15, name: "Shruthi", ...>
答案 0 :(得分:1)
如果您只想要当前用户的关联,并且您已正确设置'has_many',则可以执行...
current_user.associations.order(created_at: :desc)
这将为您提供所有关联记录,并且(当然)可以直接从当前用户获得id
和name
等current_user信息。
这将是一个ActiveRecord :: Relation,您可以迭代它,是的,它的行为就像一个数组。如果你想要所有列表,你需要一个数组或类似数组的结构。
答案 1 :(得分:0)
您有两种选择。
将.first
添加到查询中。
使用User.find(current_user.id)...
答案 2 :(得分:0)
您也需要列表,然后您必须迭代数组
users = User.where("id = #{current_user.id}").include_associations.order(created_at: :desc)
users.each do |user|
#user is activerecord data here
end
答案 3 :(得分:0)
这里有一个替代方案,例如 -
user_array = User.where("id = #{current_user.id}").include_associations.order(created_at: :desc)
active_record_of_users = User.where(id: user_array.map(&:id))