在Rails 6.1 RC1上对ActionText进行JSONAJAX更新失败

问题描述

我有一个使用ActionText的表单的基本Web应用程序。进行更改后,会有一个Trix侦听器通过AJAX调用我的控制器(自动保存!)。控制器如下所示:

  def update
    respond_to do |format|
      if @model.update(model_params)
        format.json { render json: @model }
      else
        format.json { render json: @model.errors,status: :unprocessable_entity }
      end
    end
  end

这在Rails 6.1 alpha上绝对正常,但是由于update to Rails 6.1 RC1,相同的代码导致此错误

ActionView::MissingTemplate (Missing partial action_text/content/_layout with 
{:locale=>[:en],:formats=>[:json],:variants=>[],:handlers=>[:raw,:erb,:html,:builder,:ruby]}. 

有人能阐明为什么会这样吗?我曾尝试挖掘源代码,但我没有一个明智的选择。我还想知道它是否与this issue有关。

谢谢。

解决方法

我已经解决了以下问题。最初,我在format: :json声明中有form_with

<%= form_with(model: @model,format: :json) do |form| %>

这在Rails 6.1 Alpha中有效,但在RC1中无效。从代码中删除格式即可解决此问题。

<%= form_with(model: @model) do |form| %>

POST请求现在通过JS而不是JSON发出,这使问题消除了。

Processing by MyController#update as JS

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...