如何从模型中的样本数据返回对象

时间:2018-09-27 21:21:57

标签: ruby-on-rails ruby

我正在处理示例数据。目前,我的数据库中没有任何数据。

{ 
   "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 :(得分:0)

我将创建一个模拟类以便返回您的示例数据。像这样:

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

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

以上内容将返回一组新的Product实例。希望有帮助。

答案 1 :(得分:0)

使用结构。

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>
]