2016-06-15 3 views
0

У меня есть модель story.rb с полем product_ids. это Array идентификаторов. in story_controllershow Действие Я должен вернуть story с его products и stores. Я возвращаю ответ через story_serializer. как этотКак избежать многократного запроса в сериализаторе?

Примечание: story не имеет никакой связи с store

class StorySerializer < ActiveModel::Serializer 
    ---- 
    ---- 
def products 
    here my query for products using `product_ids` 
end 

def stores 
    here is the problem 
    to find stores, I have to find product's first and then find store's of that product. so again I am querying for products here. 
end 

end 

У меня есть product_ids так что я могу легко возвращает все связанные продукты этой story, но проблема в том, чтобы вернуть связанные stores. Как я могу вернуть магазин, не запрашивая продукты снова. Любые предложения будут полезны.

ответ

0

Вы можете использовать запоминанием:

def products 
    @products ||= begin 
    some code 
    more code 
    end 
end 

или, если это только небольшой фрагмент кода

def products 
    @products ||= some code 
end 
+0

'@' продуктов возвращаются те же значения для следующего нового запроса тоже. как я могу ограничить его идеей? @pascal betz –

+0

Что значит «запрос»? Запрос HTTP? Или просто «вызов метода». –

+0

Запрос 'HTTP'. отправлено 'curl' –