localhost在rails上重定向了太多次ruby
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了localhost在rails上重定向了太多次ruby相关的知识,希望对你有一定的参考价值。
我正在使用devise / Ruby on Rails,当我尝试打开我的localhost时,我得到了以下无限循环,并且不知道为什么因为我所做的唯一改变是使用Faker gem创建种子,并创建一个show view当用户登录时
起初我认为我的控制器中的if / else语句出了问题,因为当我重新设置数据时,没有current_user登录,它应该带我到通过设计创建的新用户注册路径,但是丢失了为什么它重复自己..
任何和所有的帮助将不胜感激!
下面是终端:
Started GET "/users/sign_in" for 127.0.0.1 at 2017-12-30 13:53:58 -0800
Processing by UsersController#show as html
Parameters: {"id"=>"sign_in"}
Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)
UsersController
class UsersController < ApplicationController
before_action :authenticate_user!
def show
if current_user.present?
@user = current_user
@item = Item.new
@items = @user.items
else
redirect_to new_user_registration_path
end
end
end
用户#秀
<h2> Your to-do list</h2>
<div class="col-md-8">
<div class='items'>
<%= render partial: "items/item", local: { item: @item} %>
</div>
</div>
<div class="col-md-8">
<div class='new-item'>
<%= render partial: "items/form", local: { item: @item } %>
</div>
</div>
路线:
Rails.application.routes.draw do
get 'welcome/index'
get 'welcome/about'
root 'users#show'
resources :users do
resources :items, only: [:new, :create, :index]
end
devise_for :users
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
答案
能够找出根本问题,即在routes.rb中放置代码的顺序。
另一答案
你的路线应该有devise_for :users
。
另一答案
你已经取消了对访客用户的权限我的意思是哪个用户没有使用设计登录这个before_action :authenticate_user!
这意味着用户没有访问任何来自UsersController
的行为,之后你已经重新申请了show
行动if current_user.present?
的权限,这实际上并不需要show
行动应该是这样的
@user = current_user
@item = Item.new
@items = @user.items
删除if
else
条件。
希望能有所帮助
以上是关于localhost在rails上重定向了太多次ruby的主要内容,如果未能解决你的问题,请参考以下文章