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的主要内容,如果未能解决你的问题,请参考以下文章

PHP 站点在 XAMPP 中运行良好,但在 linux 上重定向太多次

在 ruby​​ on rails 上重命名上传文件

.htaccess 重定向太多次

仅在 Flutter Web 上重定向

钩子在 wordpress 上重定向

如何在Angular中的同一模块上重定向