Допустим, у меня есть таблица, которую я пытаюсь преобразовать.У него есть имена столбцов Item1, Item2 ... Item25.У меня нет контроля над именами столбцов, я преобразую их в лучшую структуру.
Поскольку существует шаблон соглашения об именах, я могу создавать имена столбцов на лету.Проблема в том, что когда я пытаюсь использовать мою переменную в качестве ключа объекта, она передается как литерал вместо содержимого переменной.
Например, это работает:
if !order.item1.empty?
OrderItem.create(
:item => order.item1,
:quantity => order.qty1,
:price => order.price1
)
Но вместо того, чтобы сделать 25 вариантов этого вручную, я хотел бы сделать что-то вроде
i = 1
while i < 25
item_ref = "item" + i.to_s
if !order.item_ref.empty?
OrderItem.create(
:item => order.item_ref,
etc...)
i += 1
end
end
Но, конечно, это не работает.Rails пытается найти order.item_ref вместо order.item1, который не существует.
Я пару раз сталкивался с этой проблемой в различных проектах, есть мысли?