Ruby on rails Rails-通过关联将数据播种到多个?
我有一个种子文件,其中包含以下代码:Ruby on rails Rails-通过关联将数据播种到多个?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,我有一个种子文件,其中包含以下代码: 300.times do # create the customer customer = Customer.create([ {customer_type_id: '1'} ]) # create an address for the customer address = Address.create([ {city: Faker::Address.city, country: 'UK'} ]) postcod
300.times do
# create the customer
customer = Customer.create([
{customer_type_id: '1'}
])
# create an address for the customer
address = Address.create([
{city: Faker::Address.city, country: 'UK'}
])
postcode = Postcode.create([
{value: Faker::Address.uk_postcode}
])
name_number = NameNumber.create([
{value: Random.rand(495)}
])
street = Street.create([
{value: Faker::Address.street_name + " " + Faker::Address.street_suffix}
])
state = State.create([
{value: Faker::Address.uk_county}
])
这个很好用。然而,我曾希望能够做到以下几点:
address = Address.create([
{city: Faker::Address.city, country: 'UK'}
])
address.postcode = Postcode.create([
{value: Faker::Address.uk_postcode}
])
我在第一行创建了地址,在第二行创建了地址的邮政编码。但是,这会产生一个错误
有人能建议我怎么做吗
谢谢
编辑:根据请求,生成的错误为:
rake db:seed
rake aborted!
undefined method `postcode=' for #<Array:0x007f9df1f26818>
Tasks: TOP => db:seed
(See full trace by running task with --trace)
rake db:seed
雷克流产了!
未定义的方法“postcode=”用于#
任务:TOP=>db:seed
(通过使用--trace运行任务查看完整跟踪)
您正在将一个数组传递给
create
,该数组为数组中的每个属性哈希创建一个对象,并返回生成的对象数组。由于一次只创建一个对象,只需删除属性散列周围的方括号(如果需要,甚至可以删除大括号),它就可以正常工作:
address = Address.create(city: Faker::Address.city, country: 'UK')
你能指定它产生了什么错误吗?我已经编辑添加了错误。这两行完全按照所写的顺序互相跟随-也许我认为“address=address.create”行将地址变量设置为新创建的对象是错误的?我需要在以后单独设置吗?