我的类方法没有调用,我认为它与我的目录结构有关

时间:2011-06-03 16:31:00

标签: ruby-on-rails ruby

重构某些文件后,我收到了错误消息。当我打电话

@batch << Formatter.get(@fields)

它返回@fields。当我尝试使用调试器进入Formatter.get方法时,我发现它已被跳过。

我的目录结构如下:

      
  • LIB /   
          
    • 克拉斯/     
             
      • formatter.rb     
      • 格式化器/
              
        • formatter.rb
        • foo_formatter.rb
        • bar_formatter.rb   
          
        

lib / klass / formatter.rb包含:

require 'formatter/formatter'
require 'formatter/foo_formatter'
require 'formatter/bar_formatter'
module Klass
  class Formatter
  end
end

lib / klass / formatter / formatter.rb包含:

module Klass
    class Formatter

        attr_accessor :fields

        def self.get fields
            case fields[:field_id]
            when "foo"; FooFormatter.new fields
            when "bar"; BarFormatter.new fields
            end
         end

lib / klass / formatter / foo_formatter.rb包含:

module Klass
    class FooFormatter < Formatter

1 个答案:

答案 0 :(得分:1)

您需要更改lib / klass / formatter / formatter.rb的命名空间,使其读取

module Klass::Formatter
    class Formatter

        attr_accessor :fields

        def self.get fields
            case fields[:field_id]
            when "foo"; FooFormatter.new fields
            when "bar"; BarFormatter.new fields
            end
         end