1

我正在渲染一个使用 ActionText 输入rich_text_area 的表单,它是 Trix WYSIWYG 富文本编辑器的 Rails 实现。在我开始重构视图以使用布局之前,它一直运行良好,其中表单内容可以产生不同的表单。除了rich_text_areas之外,表单呈现良好,它们都消失了。删除使其成为布局所需的代码使其恢复正常。我的代码如下。

我使用以下代码将表单呈现为部分:

<%= stylesheet_link_tag "form" %>
<%= form_with model: @family, class: "form-group" do |f| %>

  <%= label_tag(:banner_image, 'Select a Banner Image')%>
  <%= f.file_field :banner_image%>
  <br>
  <br>

  <%= label_tag(:zh_family_name, 'Chinese Family Name') %>
  <%= f.text_field :zh_family_name %>
  <br>
  <br>
  <%= label_tag(:en_family_name, 'English Family Name') %>
  <%= f.text_field :en_family_name %>
  <br>
  <br>
  <%= label_tag(:en_summary, 'Summary') %>
  <%= f.text_field :en_summary %>
  <br>
  <br>
  <%= label_tag(:zh_summary, 'Summary Chinese') %>
  <%= f.text_field :zh_summary %>
  <br>
  <br>

  <%= label_tag(:en_content, 'Content') %>  
  <%= f.rich_text_area :en_content_rt %>
  <br>
  <br>

  <%= label_tag(:zh_content, '内容') %>
  <%= f.rich_text_area :zh_content_rt %>
  <br>
  <br>

  <%= label_tag(:service_id, 'Select a related service') %>
  <%= f.collection_select(:service_id, Service.all, :id, :en_title) %>
  <br>
  <br>
  <%= f.submit %>
<% end %>

它工作正常,富文本区域可见,并且可以在将此表单作为部分加载到 edit.html.erb 文件中时使用,如下所示:

<%= render "partials/family_form" %>

但我想将它呈现为名为“编辑器”的布局的一部分,因此我将 edit.html.erb 更改为:

<% content_for :form do %>
  <h1>Edit the <em><%= @family.en_family_name %></em> Testimonial </h1>

  <%= render "partials/family_form" %>
<% end %>

添加render layout: 'editor'到控制器中的编辑功能,并添加如下所示的布局:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <%= stylesheet_link_tag "editor" %>
  <%= yield :head %>
</head>
<body>
  <div class="main-container">
    <div class="sidenav">
      <%= render "partials/sidenav" %>
    </div>
    <div class="content">
      <%= yield :form %>
    </div>
  </div>
</body>
</html>

我想我已经把它缩小到render layout: 'editor'问题根源的代码上,因为直接将表单代码粘贴到 editor.html.erb 布局文件中会产生相同的错误:除了富文本区域之外,一切都很好。

我还没有在 Trix 存储库中看到此问题的报告,并尝试手动将require 'action_text'ActionText 帮助程序添加到相关控制器,但无济于事。任何帮助将不胜感激,谢谢。

4

1 回答 1

6

action_text是使用 Webpacker 还是使用资产管道设置的?如果你使用 Webpacker 设置它,你可能需要添加<%= javascript_pack_tag 'application' %> 如果你使用资产管道设置它,那么正如@MurifoX提到的,你可能需要<%= javascript_include_tag 'application' %>.

于 2019-11-27T13:26:40.650 回答