获取:“找不到 SessionsHelper,预计它会在 helpers/sessions_helper.rb 中定义"; [英] Getting: "Couldn't find SessionsHelper, expected it to be defined in helpers/sessions_helper.rb"
问题描述
我在加载/login/时在我的日志文件中得到以下内容.
I am getting the following in my log file upon loading /login/.
在 2016-01-02 03:06:24 +0000 开始为 120.138.93.108 获取/login"
ActionController::RoutingError(找不到 SessionsHelper,希望它在 helpers/sessions_helper.rb 中定义):app/controllers/application_controller.rb:1:in
'app/controllers/sessions_controller.rb:1:in
'
但是,sessions_helper.rb 确实存在于 helpers 文件夹中.此外,application_controller.rb 和 session_controller.rb 被定义为类,而 session_helper.rb 被定义为模块.
However, sessions_helper.rb does exist in the helpers folder. Furthermore, application_controller.rb and sessions_controller.rb are defined as Classes and the session_helper.rb as module.
可能有什么问题?
推荐答案
我遇到了类似的问题:
Couldn't find AgileTeamsHelper, expected it to be defined in helpers/agile_teams_helper.rb
事实证明我在我的助手中定义了这个:
It turns out I had this defined in my helper:
module AgileTeamHelper
def td_color(text)
if text == "Green"
"green-background"
elsif text == "Yellow"
"yellow-background"
elsif text == "Red"
"red-background"
end
end
end
代替:
module AgileTeamsHelper # <-- (Notice the extra s after teams)
def td_color(text)
if text == "Green"
"green-background"
elsif text == "Yellow"
"yellow-background"
elsif text == "Red"
"red-background"
end
end
end
在这种情况下,我错过了AgileTeamsHelper"中的s".我相信 rails 会寻找一个与 helper 相同的模块,但是驼峰式的.IE.'agile_teams_helper'.camelize
->AgileTeamsHelper"
In this case I was missing the 's' in 'AgileTeamsHelper'. I believe that rails looks for a module with the same as the helper, but camel cased. IE. 'agile_teams_helper'.camelize
-> "AgileTeamsHelper"
这篇关于获取:“找不到 SessionsHelper,预计它会在 helpers/sessions_helper.rb 中定义";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!