我已经使用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
我想我理解为什么会这样,但是再次,我不知道如何解决它。
答案 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| %>