有没有办法使用Faker宝石播种哈希?

时间:2014-07-13 23:59:10

标签: ruby-on-rails mongoid faker

我正在尝试播种一些数据,但我有一个接收哈希值的字段。当我做以下

50.times do 
  Event.create(
    name: Faker::Internet.name,
    data: Faker::Lorem.words(4),
    uri:  Faker::Internet.url
    )
end
events = Event.all

我收到一条错误消息,称数据被作为数组播种,因为它是一个哈希字段。有没有解决这个问题?

rake aborted!
Mongoid::Errors::InvalidValue: 
Problem:
  Value of type Array cannot be written to a field of type Hash
Summary:
  Tried to set a value of type Array to a field of type Hash

我尝试了以下操作:

data: Faker::Lorem.words(4).to_h

但它似乎无法发挥作用。

1 个答案:

答案 0 :(得分:3)

你可以做到

Event.create(
  name: Faker::Internet.name,
  data: Hash[*Faker::Lorem.words(4)],
  uri:  Faker::Internet.url
)