Как вернуть объект из образца данных в модель - PullRequest
0 голосов
/ 28 сентября 2018

Я играю с образцами данных.У меня нет данных в базе данных на данный момент.

{ 
   "Name": "john",
   "ProductIds: [1, 2, 3],
   "Products": [
    { 
      "description": [
         { 
           "a": "abc"
         },
         { 
           "b": "def"
         }
       ] 
     }
   ]
}

Например, когда мы делаем Customer.all, мы получаем результат примерно так:

 [#<Customer:0x00007fd75542f250
  id: "123",
  customer_name: "sam",
  city: "Houston",
  state: "Texas"]

У меня есть эти данныев модели, и я пытаюсь написать метод для возврата этого образца данных в виде объекта.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Использовать структуры.

class Customer
  def self.all(collection)
    customer = Struct.new(:name, :address)
    collection.map {|e| customer.new(e[:name], e[:address])}
  end
end

collection = [
  {name: "pepe", address: "abc"},
  {name: "ciro"}
]

Customer.all(collection) #=> [
 #<struct name="pepe", address="abc">,
 #<struct name="ciro", address=nil>
]
0 голосов
/ 28 сентября 2018

Я бы создал фиктивный класс, чтобы вернуть ваши данные образца.Примерно так:

class CustomerRepositroyMock
   DATA = [
     { .... json data here }
   ]

   def self.all
      DATA.map{ |payload| Product.new(.... init attributes here) }
   end
end

Выше приведен массив новых экземпляров Product.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...