Ruby on rails 在Rails中获取列值

Ruby on rails 在Rails中获取列值,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一张名为“学生”的桌子。 我需要从特定的学生那里获取电子邮件字段 例如,我在IRB中获得以下输出 Student.all Student Load (0.1ms) SELECT "students".* FROM "students" => [#<Student id: 1, name: "Bob", grade: 1, email_address: "bob@school.com", created_at: "2014-03-2

我有一张名为“学生”的桌子。 我需要从特定的学生那里获取电子邮件字段 例如,我在IRB中获得以下输出

    Student.all

    Student Load (0.1ms)  SELECT "students".* FROM "students" 
    => [#<Student id: 1, name: "Bob", grade: 1, email_address: "bob@school.com", created_at:           "2014-03-27 08:55:51", updated_at: "2014-03-27 08:55:51">, #<Student id: 2, name: "Neo", grade: 1,       email_address: "robert@neo.com", created_at: "2014-03-27 08:56:05", updated_at: "2014-03-27 08:56:05">, #<Student id: 3, name: "Phil", grade: 3, email_address: "phil@school.com", created_at: "2014-03-27 08:56:21", updated_at: "2014-03-27 08:56:21">] 
现在我需要得到一年级学生的电子邮件地址。 我怎样才能得到它?

我解决了它, 可使用以下功能完成:

    mail_addresses = Student.where(grade: 1).pluck(:email_address) 

    mail_addresses.each do|a|
      puts a
    end
输出:

    bob@school.com
    robert@neo.com
    => ["bob@school.com", "robert@neo.com"]

我解决了它, 可使用以下功能完成:

    mail_addresses = Student.where(grade: 1).pluck(:email_address) 

    mail_addresses.each do|a|
      puts a
    end
输出:

    bob@school.com
    robert@neo.com
    => ["bob@school.com", "robert@neo.com"]

我想这会对你有帮助

有很多方法可以编写查询来获取一年级学生的电子邮件地址

Student.where(:grade => 1).map(&:email)

您也可以使用select

 Student.where("grade = ?", 1).select("email").map(&:email)

始终将rails查询与where一起使用,而不是使用find。带有“where”的rails查询工作得很快,而不是查找。

我认为它会帮助您

有很多方法可以编写查询来获取一年级学生的电子邮件地址

Student.where(:grade => 1).map(&:email)

您也可以使用select

 Student.where("grade = ?", 1).select("email").map(&:email)
始终将rails查询与where一起使用,而不是使用find。带有“where”的rails查询正在快速运行,而不是查找