在Rails中获取列值

Rez*_*eza 1 activerecord ruby-on-rails

我有一张名为学生的桌子.我需要从特定学生那里获得电子邮件字段,例如,我在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">] 
Run Code Online (Sandbox Code Playgroud)

现在我需要获得1年级学生的电子邮件地址.我怎么能得到它?

Rez*_*eza 5

我解决了它,它可以通过使用pluck函数来完成:

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

    mail_addresses.each do|a|
      puts a
    end
Run Code Online (Sandbox Code Playgroud)

输出:

    bob@school.com
    robert@neo.com
    => ["bob@school.com", "robert@neo.com"]
Run Code Online (Sandbox Code Playgroud)

瞧!