2017-11-06 1 views
0

내가 User 모델을 가지고 있으며 Grape::Entity을 통해 User 개체를 노출한다고 가정 해 보겠습니다. 여기에서는 다른 키 (id, name, email) 값을 기반으로 이름과 값이 동적 인 키를 정의하려고합니다.grape-entity gem에서 동적 키를 정의하는 방법은 무엇입니까?

module API 
    module Entities 
    class User < Grape::Entity 
     expose :id 
     expose :name 
     expose :email 
     expose :dynamic_key # dynamic key name will be generated based on other keys(`id`, `name`, `email`) value 

     private 

     def dynamic_key 
     #dynamic key value here based on other keys(`id`, `name`) value 
     end 
    end 
    end 
end 

어떻게하면됩니까? 미리 감사드립니다.

답변

0

당신은 object와 인스턴스에 액세스 할 수 있습니다

def dynamic_key 
    "#{object.id}_#{object.name}" 
end 

편집 : 질문을 오해. 이런 식으로 동적 키를 얻을 수 있다고 생각하지 마십시오. 다음과 같이하면됩니다 :

expose "#{object.id}_#{object.name}".to_sym 
+0

나는'object' 인스턴스를 사용할 수 있다는 것을 알고 있습니다. 하지만 동적으로'dynamic_key' (예 :': foo_dynamic_key',': bar_dymanic_key') 키를 생성해야합니다. –

+0

이 내 대답을 편집했으나 직접 테스트하지 않았습니다. – EJ2015

+0

'object' isntance를 사용할 수 없습니다. API를위한'정의되지 않은 지역 변수 또는 메소드 객체를 얻는 것 :: Entities :: CostCenter : Class 당신이 의미 했습니까? object_id' 오류 메시지 –

관련 문제