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