我有一个对象学生的集合。我只想得到所有学生的身份证。学生模型在 Datamapper 中实现。我是 Ruby on Rails 和 Datamapper 的新手。有什么办法可以让我获得收藏学生中所有学生的身份。所以基本上我想要以下东西:
students = Student.all
ids = students.get_ids
我不知道如何实现 get_ids。
我有一个对象学生的集合。我只想得到所有学生的身份证。学生模型在 Datamapper 中实现。我是 Ruby on Rails 和 Datamapper 的新手。有什么办法可以让我获得收藏学生中所有学生的身份。所以基本上我想要以下东西:
students = Student.all
ids = students.get_ids
我不知道如何实现 get_ids。
变量“students”是一个数组,你不应该在它上面应用 get_ids。该函数应该没有参数。
def get_ids
Student.all.map { |student| student.id }
end
如果您只想获得活动记录关系,请尝试以下操作:
Student.select(:id)
这应该会返回一个 ActiveRecord 关系,其中包含每个对象中的所有对象和 ID。
如果您想要的不是 ActiveRecord 关系,而只是 id,请使用简单的“pluck”方法
Student.pluck(:id)
如果您确实需要所有学生对象,请使用students.map(&:id)
which 的缩写students.map{|s| s.id}
并返回所有 id 的数组。
要直接从您的数据库中获取 id,请使用Student.where(...).pluck(:id)
without all
,这比实例化所有学生对象要快得多且内存占用更少。
编辑:
对不起,采摘方法仅是 ActiveRecord。但是其他答案可以fields
选择。