Как исправить перенаправление контроллера после удаления турболинков в Rails - PullRequest
0 голосов
/ 17 февраля 2019

Я удалил turbolinks из моего бета-версии Rails 6.0.0, используя Ruby 2.6.1, и при этом всякий раз, когда я обновляю или создаю главу, в базу данных отправляется запрос POST.Но хотя база данных сохранит данные, она также попытается перенаправить страницу, но браузер не перенаправит куда-либо и все равно отобразит страницу редактирования / новой страницы.

Эта проблема не возникала до удаления турболинков,Я пытался искать вокруг, но не мог найти никакого решения этого до сих пор.Я попытался перезапустить сервер и, конечно, с помощью bundle update заранее на самом деле удалить turbolinks.

Контроллер главы

def update
    @book = Book.find(params[:book_id])
    @chapter = @book.chapters.find(params[:id])
    if @chapter.update(chapter_params)
        redirect_to book_chapter_path(@book, @chapter)
    else 
        ...
    end
end
...
  private
  def chapter_params
    params.require(:chapter).permit(:title, :content, :status)
  end

главы> edit.html.erb

<%= form_with model: @chapter, url: { action: "update" } do |form| %>
... 
<%= form.submit "Draft", class: "save-btn" %>
...
<% end %>

rout.rb

  resources :books do
    resources :chapters
  end

Обычно я ожидаю такого вывода из журналов сервера после его запроса POSTобновить / создать главу в базе данных ...

Started GET "/books/1/chapters/1" for 127.0.0.1 at 2019-02-17 12:52:29 +1030
Processing by ChaptersController#show as HTML

Но вместо этого он говорит

Started GET "/books/1/chapters/1" for 127.0.0.1 at 2019-02-17 12:52:29 +1030
Processing by ChaptersController#show as JS

Я думаю, я понимаю, почему это происходит, но опять же, я нене знаю, как ее решить.

1 Ответ

0 голосов
/ 17 февраля 2019

По умолчанию form_with - Ajax (удаленный).

https://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_with

Вы должны добавить local: true.

<%= form_with model: @chapter, url: { action: "update" }, local: true do |form| %>
...