我目前无欲无求我的数据库,下面的部分是给我的一些结果没想到:导轨 - find_or_create_by给人意想不到的效果
trim.model_years.find_or_create_by_value([
{value: '2009 (58)'},
{value: '2009 (09)'},
{value: '2009 (59)'},
{value: '2010 (59)'},
{value: '2010 (10)'},
{value: '2010 (60)'},
{value: '2011 (60)'},
{value: '2011 (11)'},
{value: '2011 (61)'},
])
我本来期望这可以分别对待每一项,并为记录做一个find_or_create(我修改了正常的create方法的格式,它只会创建9个单独的记录)。
什么似乎要发生的事情,然而,就是我得到1分的记录,这是一个包含所有记录的字符串,其中“价值”等
我如何格式化这个允许9独立记录是find_or_created?
编辑:非常感谢有关迭代数组的答案 - 我现在似乎正在某处,但仍然有一个问题,这是不是创建一个记录和其他关联到它,种子文件仍然在每个循环中创建重复的记录。我已经包含下面我修改后的代码:
make = Make.find_or_create_by_value(value: 'Alfa Romeo')
model = make.models.find_or_create_by_value(value: '147')
trim = model.trims.find_or_create_by_value(value: '2.0 Lusso 5d (2001 - 2005)')
values = [
{value: '2001 (X)'},
{value: '2001 (Y)'},
{value: '2001 (51)'},
{value: '2002 (51)'},
{value: '2002 (02)'},
{value: '2002 (52)'},
{value: '2003 (52)'},
{value: '2003 (03)'},
{value: '2003 (53)'},
{value: '2004 (53)'},
{value: '2004 (04)'},
{value: '2004 (54)'},
{value: '2005 (54)'},
{value: '2005 (05)'}
]
values.each do |item|
trim.model_years.where(item).first_or_create
end
有,当然,很多块这样的,所有这些都应该在同一车型年被重新使用,而是first_or_create似乎总是创建重复。
非常感谢这一点,我想我现在正在某个地方 - 如果您可以提供帮助,我已经为我的问题添加了一个编辑以增加清晰度。 – 2012-07-31 17:56:34
@HO,我不知道我是否理解你的新问题。我试着回答,但我不知道它是否有帮助。 – Mischa 2012-08-01 02:45:01