Rails没有返回模型的值

时间:2014-08-08 19:59:42

标签: ruby-on-rails model controller return

我试图从模型中读取文件并将结果发送到控制器。但是当我尝试显示返回值时,我唯一得到的是:

#<Modules:0x007fd559e6cf40>

在我的代码中,我只是调用Modules.new()并将结果保存在变量中:

class WelcomeController < ApplicationController

  def index
    text = Modules.new "../modules"

    puts text
  end
end

我的Modules-Model读取目录,在每个子目录中查找特定文件并返回该文件的内容:

class Modules
  include Mongoid::Document

  def initialize directory = "./modules"
    modules
  end

  def modules directory = "./modules"

    unless Dir[directory].empty?

      Dir.glob(directory).each do |folder|

        unless Dir["#{directory}/#{folder}"].empty?

          Dir.glob(folder).each do |folder|

            if File.exist? "module.json"
              return open("module.json", "json") do |io| io.read end
            end

          end
        end

       end

    else
      return "Directory empty"
    end

  end
end

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您是否正在尝试在每个子目录中查找module.json文件?

因为您需要传递目录的完整路径。像:

return File.read("#{folder}/module.json") if File.exist? "#{folder}/module.json"