는 다른 열 중 하나의 내가 단지 Foo
의 User
의 이름을 원하는 가정 해 봅시다, 그리고 ActiveRecord 연결에서 특정 열만 요청할 수 있습니까?
def Foo
has_one :user
end
을 고려하십시오. 그래서 하나의 열을 얻을 수있는 연결을 사용하기 위해 교묘 한 방법이 내가
SELECT name FROM "users" WHERE "prices"."id" = 123
를 원하지만 일을 foo.user.name
나
SELECT * FROM "users" WHERE "prices"."id" = 123
줄 것이다? 이로부터 단지 값을 반환합니다
User.select(:name).where(...)
: 당신은 당신처럼 ALL 기타 사항 서보 -OFF 방법을 사용하여 선택하고 싶은 열을 지정할 수 있습니다
User.where(id: foo.user_id).pluck(:name).first
이 범위가 대표적일까요? 스코프는, 일반적으로, ActiveRecord :: Relation를 하늘 또는 안쪽으로 돌려줍니다. 메서드가 더 적절할 것입니다 (또는 위임 하시겠습니까?) – MrYoshiji
이것은 ActiveRecord 쿼리 메서드의 체인이므로 관계를 반환한다고 생각합니다. 대신 Bar 클래스에 작성된 관계를 반환한다는 점만이 이상한 점입니다 Foo 클래스의 -하지만 일단 당신이'something.otherthing.where()'에 가면 어쨌든 그것을하는 것이 좋습니다. 이 방법을 정의하는 것도 좋은 방법입니다. 저는 이런 식으로 할 필요가 전혀 없기 때문에 어떤 것이 더 낫거나 왜 그런지에 대한 기준 틀이 없습니다. – Andrew