2014-03-27 5 views
1

나는 students라는 테이블이 있습니다. 내가 예를 들어, 내가 레일에서 열 값 가져 오기

Student.all 

    Student Load (0.1ms) SELECT "students".* FROM "students" 
    => [#<Student id: 1, name: "Bob", grade: 1, email_address: "[email protected]", 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: "[email protected]", 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: "[email protected]", created_at: "2014-03-27 08:56:21", updated_at: "2014-03-27 08:56:21">] 

IRB

에 다음과 같은 출력을 얻을 특정 학생들이 지금은 1 학년 학생들의 이메일 주소를 얻을 필요가 이메일 필드를 얻을 필요가있다. 어떻게받을 수 있습니까?

답변

2

나는 그것이 당신을 도울 것이라고 생각합니다.

학년 학생의 이메일 주소를 얻기 위해 쿼리를 작성하는 많은 방법이 있습니다 1.

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

또는

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

또는

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

또는

Student.find(:all, :conditions => ["grade = ?", 1]).map(&:email) 

선택 사항도 사용할 수 있습니다.

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

항상 where 대신 find와 레일 쿼리를 사용합니다. find 대신`where '가 빨리 작동하는 레일즈 질의.

관련 문제