在Rails中删除Turbolink后如何解决控制器重定向问题

时间:2019-02-17 02:28:47

标签: ruby-on-rails ruby turbolinks

我已经使用Ruby 2.6.1从Rails 6.0.0 beta Web应用程序中删除了涡轮链接,这样做之后,无论何时更新或创建章节,都会将POST请求发送到数据库。但是,尽管数据库将保存数据,但它还将尝试重定向页面,但浏览器不会重定向到任何地方,仍将显示编辑/新页面。

在删除涡轮链接之前这不是问题。我已经尝试过四处搜寻,但到目前为止找不到任何解决方案。我尝试重新启动服务器,当然当然也要先使用bundle update删除涡轮链接。

章节控制器

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 %>

routes.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 :(得分:3)

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| %>