在我的 seed.rb 中,我使用来自一个 title-1.txt 文件的文本数据填充 4 列。
title = File.read(File.join(Rails.root, '/features/support/titles/title-1.txt'))
1.upto(4) do |i|
PressRelease.create(
:title => title
)
end
我想用来自不同 txt 文件(title-1.txt、title-2.txt、...)的不同内容填充每一列
我知道我可以做到这一点:
1.upto(4) do |i|
PressRelease.create(
:title => File.read(File.join(Rails.root, '/features/support/titles/title-' + "#{i}" +'.txt'))
)
end
为了简短起见,我尝试将标题变量更改为:(
注意标题-“#{i}”)
title = File.read(File.join(Rails.root, '/features/support/titles/title-' + "#{i}" + '.txt'))
但我收到此错误:
未定义的局部变量或方法'i' for main:Object
任何提示如何制作一个可重用的短变量让我在迭代中使用它?
--更新 --
这篇文章没有完整的解决方案,从@Paul Fioravanti 的回答中我得到了另一种缩短代码的方法。url 必须存储在没有 File.open 方法的变量中,如下所示:
title_url = '/features/support/titles/title-' + '%s' + '.txt'
1.upto(4) do |i|
PressRelease.create(
:title => File.read(File.join(Rails.root, "#{title_url %i}"))
)
end