Дело не в том, что 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]
В среде Rails запуск rails console
(я предпочитаю использовать pry для консоли, YMMV) дает вам доступ к вашей среде, включая предоставление большого количества динамических методов. Обратите внимание, что некоторые методы не существуют до тех пор, пока они не будут вызваны впервые (особенно те, которые относятся к разновидности find_by_foo_and_bar
), поэтому некоторые функции могут все еще быть скрытыми.