2017-11-06 48 views
0

私はUserモデルを持っていて、Grape::EntityUserオブジェクトを公開しています。ここでは、名前とその値が他のキー(idnameemail)の値に基づいている動的キーを定義します。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

私は 'オブジェクト'インスタンスがここで利用できることを知っています。しかし、私は動的に 'dynamic_key'(例えば:' foo_dynamic_key'、 ':bar_dymanic_key')キーを生成する必要があります。 –

+0

は私の答えを編集しましたが、自分でテストしていませんでした。 – EJ2015

+0

'object' isntanceは利用できません。 APIのための未定義のローカル変数またはメソッドオブジェクトを取得する:: Entities :: CostCenter:Class意味しましたか? object_id'エラーメッセージ –

関連する問題