种子,从外部文件运行代码

时间:2014-08-10 21:10:41

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

我在 db \ company.rb 中有一个名为company.rb的ruby文件。该文件应该创建类Company的实例,以供您查看。

list = [["20", "ABC", ...
list.each do |c|
  Company.create(:Key => c[0] ...
end 

现在我尝试在 db \ seeds.rb 中运行此文件。我认为如果我在这个文件中要求它会这样执行:

require 'company'

我错了什么?或者我如何在company.rb文件中执行seeds的代码?感谢

1 个答案:

答案 0 :(得分:1)

默认情况下,db文件夹不会出现在您的加载路径中。您的require 'company'行正在加载错误的company.rb文件(可能是app/models下的文件)。最简单的解决方案是使用require_relative 'company'(假设您还没有运行Ruby 1.8)。你也可以:

  • 使用_FILE_#dirname手动构建路径。
  • db添加到您的加载路径(不要这样做,这不是个坏主意)