我是红宝石和红宝石的新手。我正在尝试使用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()?我做错了什么?还是预期?
答案 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