ActiveRecord는 선택한 열을 찾아서 만 반환합니다.
편집 2
관리자 우연히 발견하면 이제 두 개의 답변을 사용하여 확인하십시오.
json으로 반향되기 위해 반환하고 싶은 상당히 큰 사용자 지정 데이터 세트가 있습니다. 한 부분은 다음과 가변합니다.
l=Location.find(row.id)
tmp[row.id]=l
하지만 다음과 같이하고 싶습니다.
l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l
그러나 작동하지 않는 것입니다. 이 작업을 어떻게 수행합니까?
고마워
편집 1
또는 내가 포함하려는 속성의 배열 만있는 수있는 방법이 있습니까?
Rails 2에서
l = Location.find(:id => id, :select => "name, website, city", :limit => 1)
... 또는 ...
l = Location.find_by_sql(:conditions => ["SELECT name, website, city FROM locations WHERE id = ? LIMIT 1", id])
이 참조 문서 는 .find
번호, ID 또는 기타 임의의 열 / 제약 조건으로 제한하는 방법을 포함하여 와 함께 사용할 수있는 전체 옵션 목록을 제공합니다 .
ActiveRecord 쿼리 인터페이스가있는 Rails 3에서
l = Location.where(["id = ?", id]).select("name, website, city").first
참조 : 액티브 레코드 쿼리 인터페이스
순서를 바꿀 수도 있습니다. .select(...).where(...).first
호출이 이러한 수행하는 모든 작업은 SQL 쿼리를 구성한 다음 전송하는 것입니다.
pluck (열 _ 이름)
이 방법은 직접 SQL 쿼리로 단일 열에 의해 선택을 수행하도록 설계했습니다. 지정된 열 이름의 값이있는 배열을 반환합니다. 값은 열과 동일한 데이터 유형을 갖습니다.
예 :
Person.pluck(:id) # SELECT people.id FROM people
Person.uniq.pluck(:role) # SELECT DISTINCT role FROM people
Person.where(:confirmed => true).limit(5).pluck(:id)
참조 http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck를
도입 된 레일 3.2부터는 단일 별장 만 수용합니다. 레일 4에서는 여러 열을 허용합니다.
나는 꽤 새로운 개발자이기 때문에 내 대답은 꽤 늦었습니다. 이것이 당신이 할 수있는 일입니다 :
Location.select(:name, :website, :city).find(row.id)
Btw, 이것은 Rails 4입니다.
참고 URL : https://stackoverflow.com/questions/7911014/activerecord-find-and-only-return-selected-columns
'IT' 카테고리의 다른 글
C #에서 공유 파일 경로를 만드는 방법이 있습니까? (0) | 2020.09.17 |
---|---|
Mongoose.js : 사용자 이름 LIKE 값으로 사용자 찾기 (0) | 2020.09.17 |
사용 가능한 avdnames를 사용하는 명령은 무엇입니까? (0) | 2020.09.17 |
사용자 지정 ActionBar 색상 / 스타일을 설정하는 방법은 무엇입니까? (0) | 2020.09.17 |
제거 PHP에서 후행 슬래시 제거 (0) | 2020.09.17 |