我的应用程序助手中有以下代码。
route = ActionController::Routing::Routes.recognize_path(current_uri)
controller = route[:controller]
action = route[:action]
session['route']<< [controller.to_s,action.to_s]
我收到以下错误 当你没想到它时,你有一个零对象! 您可能期望一个Array实例。 在评估nil时发生错误。&lt;&lt;
一些快速记录,我看到控制器和动作工作得很好。你能不能在帮助者中创建会话?
答案 0 :(得分:0)
你可以,但你做的方式是错误的。当这段代码第一次执行时,会话['route']为nil。你可以做到
session['route'] = [controller.to_s, action.to_s]
虽然,你想在这做什么?我想有更好的实现你打算在这里做的事情。
答案 1 :(得分:0)
如果您希望会话保存这些数组的数组(如果您愿意,则为“堆栈路径”),那么您首先需要确保session[:route]
为非零:
session[:route] ||= []
session[:route] << [controller.to_s, action.to_s]
否则,只需指定它:
session[:route] = [controller.to_s, action.to_s]
此外,您应该使用符号作为哈希键,而不是字符串。