【发布时间】: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