Контроллер не может найти маршрут УДАЛИТЬ, но метод находится в контроллере - PullRequest
0 голосов
/ 31 марта 2019

Я создаю небольшое приложение sinatra, но столкнулся с проблемой.Моя функция контроллера для DELETE не найдена.

ApplicationController

delete '/stories/:id' do
        if logged_in?
            @story = Story.find_by_id(params[:id])
        if  @story && @story.user_id == current_user.id
            params.delete("_method")
            #binding.pry
            @story.destroy
            redirect to "/users/show"
        else
            redirect to "/session/login"
        end
    end
end

DELETE Form Action

Title: <%= @story.title %><br>
Story: <%= @story.content %><br>


<form action="/stories/<%= @story.id %>" method="POST"> 
<input type="hidden" id="hidden"  name="_method" value="DELETE">
<input type="submit" value="Remove Story">
</form>

Ошибка

class ApplicationController
  delete '/stories/13' do
    "Hello World"
  end
end

Iтакже не может заглянуть в этот маршрут

1 Ответ

0 голосов
/ 02 апреля 2019

Вам необходимо использовать следующее промежуточное ПО, которое будет переводить <input type="hidden" id="hidden" name="_method" value="DELETE"> по http delete

use Rack::MethodOverride

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