#http-delete #sinatra-activerecord
#http-delete #sinatra-activerecord
Вопрос:
Я создаю небольшое приложение sinatra, но столкнулся с проблемой. Моя функция контроллера для УДАЛЕНИЯ не найдена.
ApplicationController
delete '/stories/:id' do
if logged_in?
@story = Story.find_by_id(params[:id])
if @story amp;amp; @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
Действие формы УДАЛЕНИЯ
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
Я также не могу проникнуть в этот маршрут
Ответ №1:
Вам нужно использовать следующее промежуточное программное обеспечение, которое будет переводить <input type="hidden" id="hidden" name="_method" value="DELETE">
в http delete
use Rack::MethodOverride