Ruby on rails 3 seed.rb中变量内部的Rails迭代变量

Ruby on rails 3 seed.rb中变量内部的Rails迭代变量,ruby-on-rails-3,refactoring,Ruby On Rails 3,Refactoring,在my 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,…)中的不同内容填充每个列 我知

在my 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  
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
简而言之,我尝试将title变量更改为:
(注意标题-“{i}”)

但是我得到了这个错误:
main:Object的未定义局部变量或方法“i”

有什么技巧可以让我在迭代中使用一个可重用的短变量吗

--更新--
这篇文章没有一个完整的解决方案,从@Paul Fioravanti的回答中,我得到了一个缩短代码的替代方法。url必须存储在不带File.open方法的变量中,如下所示:

1.upto(4) do |i|
  PressRelease.create(
    :title => File.read(File.join(Rails.root, '/features/support/titles/title-' + "#{i}" +'.txt'))
  )
end  
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

我从中得到的这个解决方案怎么样,这样您就可以在循环中缩短变量,并且在定义
title
变量时不需要定义编号的文件:

title  = File.read(File.join(Rails.root, '/features/support/titles/title-' + '%s' + '.txt'))
1.upto(4) do |i|
  PressRelease.create(
    :title => title % i
  )
end

我从中得到的这个解决方案怎么样,这样您就可以在循环中缩短变量,并且在定义
title
变量时不需要定义编号的文件:

title  = File.read(File.join(Rails.root, '/features/support/titles/title-' + '%s' + '.txt'))
1.upto(4) do |i|
  PressRelease.create(
    :title => title % i
  )
end

谢谢,我收到这条消息:没有这样的文件或目录-/directories/title-%s.txt。但是,当我将url存储在一个没有文件函数的变量中时,您的方法可以工作。因此,在create方法中,我有一个|:title=>File.read(File.join(Rails.root,#{title\u url%I})),我会等待一段时间,如果没有更好的答案,我会将您的设置为已接受。很好的捕获…应该知道这一点。如果您最终选择了此解决方案,请编辑您的问题以发布最终答案,这样其他人就不需要在其解决方案中意外使用未经测试的代码:-)谢谢,我收到以下消息:没有这样的文件或目录-/directories/title-%s.txt。但是,当我将url存储在一个没有文件函数的变量中时,您的方法可以工作。因此,在create方法中,我有一个|:title=>File.read(File.join(Rails.root,#{title\u url%I})),我会等待一段时间,如果没有更好的答案,我会将您的设置为已接受。很好的捕获…应该知道这一点。如果您最终选择了此解决方案,请编辑您的问题以发布最终答案,这样其他人就不需要在其解决方案中意外使用未经测试的代码:-)