0

我正在练习 Rails,我在“会话”主题中,我收到消息“ApplicationController:Class 的未定义方法‘会话’”

请帮我

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

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
4

2 回答 2

1

您的代码真的很难阅读,但问题可能与这一行有关,它看起来像是在尝试调用方法“会话”并将键/值对传递给它。

session :session_key => 'ruby_cookies'

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

于 2012-10-24T01:01:54.947 回答
0

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

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

有关更多详细信息,请参见http://guides.rubyonrails.org/configuring.html 。

于 2012-10-24T01:03:05.397 回答