如何从ruby数组中提取多个属性

时间:2013-08-26 16:40:12

标签: ruby-on-rails

我有一个学生数组对象,它返回多个属性。我只需要从这个数组中提取特定的属性。这是我试过的代码

@project.each do |p|
          @students << Student.find_by_id(:id => p.receiver_id, :select => "first_name, last_name")
        end

但它显示的是未知密钥:id。 我只需要在@students数组中插入名字和姓氏。我使用的是rails 2.3和ruby 1.8.7。请帮忙。

1 个答案:

答案 0 :(得分:1)

您收到该错误的原因应该是:

@project.each do |p|
  @students << Student.find_by_id(p.receiver_id)
end

如果您只想要名字和姓氏,那么您可以考虑:

@project.each do |p|
  student = Student.find_by_id(p.receiver_id)
  @students << { :first_name => student.first_name, :last_name => student.last_name }
end

如果你想要一个数组,那么:

@project.each do |p|
  student = Student.find_by_id(p.receiver_id)
  @students << [student.first_name, student.last_name ]
end

第一个版本会为您提供一系列哈希值。第二个版本将为您提供一组数组。