Dav*_*vid 0 ruby ruby-on-rails rubymine
与我熟悉的C#开发代码完成相比,我发现RubyMine提供的代码完成程度令人惊讶地不完整.
当我用一些方法编写一个类并且我想从另一个类调用它们时,
为什么我得到一个类似于"一英里"长的代码完成列表,但是没有相关的方法建议呢?
(或者这是我的RubyMine中的错误/功能?!)
有些类像ActionMailer 神奇地生成像"deliver_*"方法一样的方法(参见本例)......由于我在代码完成时没有看到它们,我怎么知道它们甚至存在?
(不幸的是,我现在也得到一个错误,那个deliver_contact方法不存在......正如我完全从示例中复制过来问我自己现在这个特征仍然存在8 []
他们有什么方法可以解决这些问题吗?
并不是Ruby不是"设计"用于代码完成,而是可以通过各种方式添加行为,包括在程序执行期间.这使代码完成变得困难.RubyMine做得很好,但只有当对象的类型已知时,才能用于明显或已知的功能.
http://apidock.com提供了Ruby,Rails和RSpec的参考资料.在irb/pry玩耍可以提供很多帮助.您总是可以通过foo.methods在REPL中进行评估来获取类/实例上的方法(尽管我几乎总是如此foo.methods.sort).
如果您使用find/grep"有点"了解您正在寻找的内容,则可以过滤该列表,例如
> "foo".class.instance_methods(false).sort.grep /each/
=> [:each_byte, :each_char, :each_codepoint, :each_line]
Run Code Online (Sandbox Code Playgroud)
在Rails环境中,运行rails console(我更喜欢使用pry作为控制台,YMMV)使您可以访问您的环境,包括暴露许多动态方法.请注意,某些方法在第一次调用之前不存在(特别是那些方法find_by_foo_and_bar),因此某些功能仍可能被隐藏.
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |