红宝石矿自动完成

时间:2017-06-09 03:02:45

标签: ruby-on-rails ruby rubymine

我是红宝石和红宝石的新手。我正在尝试使用ruby mine。

我的课程如下

module Xyz;
    class A
     def doA()
     end
    end 
end 

module Xyz
  class B
    def doB()
    end
  end
end


module Xyz 

 class C
   define initialize(b)
     #injecting instance of Xyz::B into C
     @b = b
   end
   def doC()
     a = Xyz::A.new 
     a.doA()  #Autocompletes workshere
     b.doB()  #Doesnot autocomplete, so suggestions shown
   end
 end 
end

为什么我的自动填充功能不适用于doB()?我做错了什么?还是预期?

1 个答案:

答案 0 :(得分:1)

看看这段代码:

class Test
   def initialize(a)
      @a = a
   end
end

您知道@a在实际分配和运行之前会有哪些方法吗? Ruby是真正的管道类型语言。 RubyMine在索引类和预测方法方面做得很好。例如,这将起作用,因为Xyz已被索引,而RubyMine知道它有什么方法,所以它可以预测它。

 a = Xyz::A.new 
 a.doA()  # Works because RubyMine KNOWS what class 'a' is