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 注册/登录路由错误_Ruby On Rails_Ruby On Rails 3.1_Routing - Fatal编程技术网

Ruby on rails 注册/登录路由错误

Ruby on rails 注册/登录路由错误,ruby-on-rails,ruby-on-rails-3.1,routing,Ruby On Rails,Ruby On Rails 3.1,Routing,很抱歉,我的问题是新手,但我正在努力掌握RoR。我有一个非常基本的注册和登录过程,但我有一些困难得到正确的路由。当我按下注销按钮时,我也不确定我是否真的成功注销了,因为它没有按应有的方式显示登录按钮 我在Rails 3.1上的设置如下: 会话控制器 类sessioncontroller,看看是否有帮助。嗨,Matenia,谢谢你的帮助。我已将此添加到我的代码中,现在它看起来和工作起来都好多了!:)嗨,乔恩,谢谢你的帮助,我成功地将此合并到我的路由文件中,现在一切似乎都很正常!嗨,乔恩,谢谢你的帮

很抱歉,我的问题是新手,但我正在努力掌握RoR。我有一个非常基本的注册和登录过程,但我有一些困难得到正确的路由。当我按下注销按钮时,我也不确定我是否真的成功注销了,因为它没有按应有的方式显示登录按钮

我在Rails 3.1上的设置如下:

会话控制器

类sessioncontroller
def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to root_url, :notice => "Logged in!"
    else
        flash.now.alert = "Invalid email or password!"
        render "signup"
    end
end

def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged Out!"
  def create
    @user = User.new (params[:user])
  if @user.save
    redirect_to root_url, :notice => "Signed Up!"
  else
    render "user/new"
  end
 end
end
结束 结束

def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to root_url, :notice => "Logged in!"
    else
        flash.now.alert = "Invalid email or password!"
        render "signup"
    end
end

def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged Out!"
  def create
    @user = User.new (params[:user])
  if @user.save
    redirect_to root_url, :notice => "Signed Up!"
  else
    render "user/new"
  end
 end
end
用户控制器

类UserController
def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to root_url, :notice => "Logged in!"
    else
        flash.now.alert = "Invalid email or password!"
        render "signup"
    end
end

def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged Out!"
  def create
    @user = User.new (params[:user])
  if @user.save
    redirect_to root_url, :notice => "Signed Up!"
  else
    render "user/new"
  end
 end
end
用户模型

结束

def create
    user = User.find_by_email(params[:email])
    if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to root_url, :notice => "Logged in!"
    else
        flash.now.alert = "Invalid email or password!"
        render "signup"
    end
end

def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged Out!"
  def create
    @user = User.new (params[:user])
  if @user.save
    redirect_to root_url, :notice => "Signed Up!"
  else
    render "user/new"
  end
 end
end
很抱歉在这篇文章中大量使用了代码,但我认为最好是全面地了解所有内容,这样人们就可以看到我的错误所在

如果您能提供任何帮助,我将不胜感激,因为我自己似乎没有得到

谢谢,
Tom

您的代码看起来不错,但您的路线看起来有点奇怪

我想试试这样的东西:

resources :users
resources :sessions
match 'login' => 'sessions#new', :as => :login
match 'logout' => 'sessions#destroy', :as => :logout

然后,我认为您当前拥有的所有功能都应该可以正常工作。

您的代码看起来不错,但您的路由看起来有点奇怪

我想试试这样的东西:

resources :users
resources :sessions
match 'login' => 'sessions#new', :as => :login
match 'logout' => 'sessions#destroy', :as => :logout

那么我认为你目前所拥有的一切都应该有效。

看来你的链接是错误的。。。尝试更改为
:删除%>
,看看是否有帮助。嗨,Matenia,谢谢你的帮助。我已将此添加到我的代码中,现在它看起来和工作起来都好多了!:)看来你的链接是错误的。。。尝试更改为
:删除%>
,看看是否有帮助。嗨,Matenia,谢谢你的帮助。我已将此添加到我的代码中,现在它看起来和工作起来都好多了!:)嗨,乔恩,谢谢你的帮助,我成功地将此合并到我的路由文件中,现在一切似乎都很正常!嗨,乔恩,谢谢你的帮助,我成功地将此合并到我的路由文件中,现在一切似乎都很正常!