当我在RubyMine中使用它时,我没有看到帮助程序的自动完成(如current_user,destroy_user_session_path等)。这是非常糟糕的:(有人可以帮助我吗?:)
简短回答: 你没有做错任何事。现在,它是最好的Rubymine可以做到的。
答案稍长一点:
您可能知道,Ruby可以是一种非常动态的语言。 Devise在很大程度上依赖于语言的元编程功能。诸如current_user
之类的助手是在运行时生成的,这使得Rubymine的静态分析功能无效。
Rubymine需要特别支持Devise,据我所知,它不会。
即使很明显,你也可以
def current_user
super
end
到您的ApplicationController至少避免在所有控制器中的未定义方法警告。我没有成功告诉RubyMine使用YARD自动完成:
# @return [User]
def current_user
super
end
更新:P.S。如果在没有YARD注释的情况下使用,最好让其他开发人员知道需要使用此方法的原因。否则它将被删除或至少被其他人质疑。
更新2019-02-26:由于YARD评论,代码导航至少在2018.3.4工作