특정 컨텍스트에서 모델의 필수 필드 만 가져 오는 방법을 찾을 수 없습니다. 약 30 개의 필드 (속성)가있는 거대한 모델이 있다고 가정 해 보겠습니다. 그러나 검색 목적을 위해서 나는 그들 중 단지 몇 개만 필요하다.DataMapper를 사용하여 지정된 필드의 필드 만 가져 오는 방법은 무엇입니까?
예 :
class Foo
include DataMapper::Resource
property :id, Serial
property :title, String, :length => 256
property :description, Text
property :url, String, :length => 4096
property :city, String, :length => 64
property :country, String, :length => 64
property :state, String, :length => 64
property :created_at, Time
property :updated_at, Time
property :expires_at, Time
... etc fields ...
end
그래서, 프런트 엔드 (웹 응용 프로그램)에 대해 그 분야의 대부분이 사용된다. 그러나 검색을 위해서 나는 단지 제목 : : city, : state. 그 데이터를 쉽게 쿼리 할 수 있습니다.
items = Foo.all(:title.like => 'Some stuff')
그런 다음 가져온 데이터를 JSON에 압축해야합니다. 내가 아는 한, 모든 조작을 처리하는 dm-serialize라는 DataMapper 용 모듈이있다.
마지막으로, 내가 출력 패키지를 할 : 만 그 중 일부를 얻을 필요가있는 동안
response = {:error => 0, :count => items.length, :data => items}
response.to_json
그러나 출력 항목은 모든 필드를 가지고있다. 어떤 이유로 게으른 로딩이 작동하지 않습니다.
질문 : 선택하려는 모델 필드를 지정하는 방법은 무엇입니까?
감사합니다. to_json을 사용할 때 게으른로드를 강제로 수행하지 않는 방법에 대해 궁금합니다. – vitorbal