Grape Entity для Ha sh с не работающими клавишами - PullRequest
0 голосов
/ 02 марта 2020

Я использую 'grape-entity', '~> 0.7.1'

У меня есть га sh в формате:

temp_data = [{sheet_index: 0, other_names: []},{'sheet_index' => 1, 'other_names': ['a']}]

И у меня есть следующие сущности

 class Sheet < Grape::Entity
   expose :sheet_index, documentation: {type: Integer, desc: "Sheet index"}
   expose :other_names, documentation: {type: Array, desc: "Other names"}
 end

 class Sheets < Grape::Entity
  present_collection true

  expose :items, as: 'sheet_history', using Entities::Sheet
 end


# response from the entities
present temp_data, with: Entities::Sheets

Теперь мне нужно убедиться, что независимо от типа клавиш в моем Ха sh, он все равно должен давать мне правильный вывод для вышеупомянутый случай

expected_response = {"sheet_history" => [{"sheet_index"=>0, "other_names"=>[]}, {"sheet_index"=>1, "other_names"=>["a"]}]}

, но ответ, который я получаю, имеет следующий формат

actual_response = {"sheet_history" => [{"sheet_index"=>0, "other_names"=>[]}, {"sheet_index"=>nil, "other_names"=>nil}]}

, поэтому в фактическом ответе sheet_index и other_names второго элемента равны нулю потому что их ключи были строками, а не символами. (См. temp_data.)

Я сослался на https://github.com/ruby-grape/grape-entity/pull/85, чтобы получить вышеуказанную реализацию, но все еще не могу заставить ее работать без использования HashWithIndifferentAccess или OpenStructs

...