【问题标题】:My redirect is not working (Ruby SInatra/REST routes)我的重定向不起作用(Ruby Sinatra/REST 路由)
【发布时间】:2020-10-07 12:20:48
【问题描述】:

我的 Sinatra 应用程序出现路由问题。我正在使用 ActiveRecords 顺便说一句。当我在表单上输入信息时,我将其设置为目标 post 方法,但是当它遇到该 post 方法时重定向不起作用。相反,它一直循环回到我刚刚使用的表格。

get '/players/new' do 
        if logged_in?
            erb :'players/add_player'
        else
         redirect '/login'
        end
    end

这是它渲染的 ERB 文件

<h2>Add a member to the team</h2>
<form method ='/players' method='POST'>
<label for = 'name'>Name:</label>
<input type = 'text' name = 'name'id = 'name'><br>
<label for = 'position'>Position:</label>
<input type = 'text' name = 'position' id = 'position'><br>
<label for = 'height'>Height:</label>
<input type = 'text' name = 'name' id = 'name'><br>
<label for = 'weight'>Weight:</label>
<input type = 'text' name = 'weight' id = 'weight'><br>
<input type = 'submit' value = 'Join The Team'>
</form>

这是它应该向其发送信息的 post 方法

post "/players" do 
       if params == ""
         redirect to '/players/new'
       else
        @player = Player.create(params)
        redirect to "/players/#{@player.id}"

       end
    end

但一直循环回到 add_player 文件。我哪里错了。

这是它应该重定向到的获取请求

get "/players/:id" do
        @player = Player.find(params[:id])
        erb :"players/show_player"
    end

【问题讨论】:

  • 你被重定向到什么形式,POST /players 或 POST /login?登录路由是否有可能没有正确设置任何会话,从而永远重定向?
  • 我将编辑问题,get 请求应该重定向到
  • 我使用 tux 尝试输入一些数据,如果这对您有任何意义,则可以使用并保存
  • 它循环回到第一个获取请求@cesartalves

标签: ruby sinatra-activerecord


【解决方案1】:

我的队列负责人刚刚看了看,这是一个小语法错误。我修好了它,它起作用了。我忘记在表格顶部更改method ='/players' to action = '/players'。到处乱跑有点棘手。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-30
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2017-09-17
    • 2019-01-19
    • 2016-11-27
    相关资源
    最近更新 更多