Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails-会话_Ruby On Rails_Ruby_Session - Fatal编程技术网

Ruby on rails RubyonRails-会话

Ruby on rails RubyonRails-会话,ruby-on-rails,ruby,session,Ruby On Rails,Ruby,Session,我将遵循本教程: 我的会话有问题。每次我登录到我的应用程序,我没有得到会话,但会被重定向到我的用户页面。创建/注册用户也很有效 会话\u helper.rb module SessionsHelper def sign_in(user) cookies.permanent[:remember_token] = user.remember_token @current_user = user #self.current_user = user end def signe

我将遵循本教程:

我的会话有问题。每次我登录到我的应用程序,我没有得到会话,但会被重定向到我的用户页面。创建/注册用户也很有效

会话\u helper.rb

module SessionsHelper

def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
    @current_user = user
    #self.current_user = user
end

def signed_in?
    @current_user != nil
    #!@current_user.nil?
end

def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
    #@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end

def current_user?(user)
    @current_user = user
end

def sign_out
    self.current_user = nil
    cookies.delete(:remember_token)
end



def store_location
    session[:return_to] = request.url
end
end
class SessionsController < ApplicationController

def new
    @title = "| Signin"
end

def create
    user = User.find_by_email(params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
        sign_in user
        redirect_to user
    else
        #Fehlermeldung anzeigen falls login nicht erfolgreich war
        flash.now[:error] = "Invalid email/password combination"
        render 'new'
    end
end

def destroy
    sign_out
    redirect_to root_url
end

end
会话\u控制器.rb

module SessionsHelper

def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
    @current_user = user
    #self.current_user = user
end

def signed_in?
    @current_user != nil
    #!@current_user.nil?
end

def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
    #@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end

def current_user?(user)
    @current_user = user
end

def sign_out
    self.current_user = nil
    cookies.delete(:remember_token)
end



def store_location
    session[:return_to] = request.url
end
end
class SessionsController < ApplicationController

def new
    @title = "| Signin"
end

def create
    user = User.find_by_email(params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
        sign_in user
        redirect_to user
    else
        #Fehlermeldung anzeigen falls login nicht erfolgreich war
        flash.now[:error] = "Invalid email/password combination"
        render 'new'
    end
end

def destroy
    sign_out
    redirect_to root_url
end

end
class sessioncontroller
我发现至少有一个错误:

def current_user?(user)
    @current_user = user
end
应该是

def current_user?(user)
    @current_user == user
end

=,而不是=,因为您应该检查当前用户是否与其他用户相等,而不是进行分配。

如果我忘记了一些文件,请询问我,我将添加这些文件。代码就是这样做的……它在用户中签名,然后重定向到用户页面。你希望它做什么?不,每次我提供我的帐户详细信息。。我来到我的个人主页。。但是当我点击登录按钮时。。。它指引我进入登录页面,尽管我已经登录了!您确定在浏览器中启用了Cookie吗?是的,我启用了@很抱歉,这不起作用:/