Мое перенаправление не работает (Ruby маршруты SInatra / REST) - PullRequest
1 голос
/ 17 июня 2020

У меня проблема с маршрутом в моем приложении Sinatra. Кстати, я использую ActiveRecords. Когда я ввожу информацию в форму, я настраиваю ее на целевой метод публикации, но перенаправление не работает, когда оно попадает в этот метод публикации. Вместо этого он возвращается к той форме, в которой я только что был.

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 "/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

1 Ответ

0 голосов
/ 17 июня 2020

Мой руководитель когорты только что посмотрел на него, и это одна маленькая синтаксическая ошибка. Я починил, и все заработало. Я забыл изменить method ='/players' to action = '/players' в верхней части формы. Было немного сложно обмануть c во всей этой беготне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...