ApplicationController的未定义方法`session':Class

时间:2012-10-24 00:46:08

标签: ruby-on-rails

我正在使用rails练习,我在“会话”主题中,我收到了消息 “ApplicationController的未定义方法`session':类”

请帮帮我

这是代码 * (控制器应用程序)

class ApplicationController < ActionController::Base
  session :session_key => 'ruby_cookies'
end

* (我想创建Cookie时的控制器)

class RegistroController < ApplicationController
  def index
  end

  def login
    if request.post?
      p_user = User.new(params[:user])
      user   = User.find_by_nombre_and_password(p_user.nombre, p_user.password)
      if user
        session[:user_id] = user.id
        flash[:notice]    = "se ha identificado correctamente"
        redirect_to home_url
      else
        flash[:notice] = "se incorrecto psps"
        redirect_to login_url
      end
    end
  end

  def logout
    session[:user_id] = nil
    flash[:notice] = "adios sayonara"
    redirect_to home_url
  end
end

2 个答案:

答案 0 :(得分:1)

你的代码真的很难阅读,但问题可能与这一行有关,它似乎试图调用一个方法“session”并传递一个键/值对。

session :session_key => 'ruby_cookies'

这似乎不属于任何类型的控制器操作。通常,您将使用session[:my_value] = 'value'设置会话值,并使用session[:my_value]读取,就像普通哈希一样。

答案 1 :(得分:0)

ApplicationController中的代码不属于那里。它属于配置文件,例如config/environment.rb,它将读取如下内容:

config.action_controller.session = {     
  :session_key => 'ruby_cookies'
}

有关详细信息,请参阅http://guides.rubyonrails.org/configuring.html