迭代rails目录中的文件,用文件名做一些事情?

时间:2013-02-06 20:36:21

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

在我的rails项目结构中,我在路径db / pages下创建了一个文件夹页面。我想迭代这个db / pages目录中的所有html.erb文件和 DoSomething 以及每个文件的文件名。所有这些都应该在我运行rake db:seed时发生,所以我将代码放在seeds.rb

以下是我尝试的代码:

source_path = "/db/pages"

Dir.glob("#{source_path}/*.html.erb").each do |html_page|
  DoSomething html_page
end

当我运行rake db:seed时,这似乎无能为力。我哪里出错?

1 个答案:

答案 0 :(得分:2)

尝试预先添加Rails.root:

Dir.glob("#{Rails.root}#{source_path}/*.html.erb").each do |html_page|

更正确的方法是:

source_path = Rails.root.join('db', 'pages')

Dir.glob("#{source_path}/*.html.erb").each do |html_page|