在Rails Helper中创建会话

时间:2010-12-08 06:22:11

标签: ruby-on-rails session helpers

我的应用程序助手中有以下代码。

  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;

一些快速记录,我看到控制器和动作工作得很好。你能不能在帮助者中创建会话?

2 个答案:

答案 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]

此外,您应该使用符号作为哈希键,而不是字符串。