Rails 6 ActionText rich_text_area 正常工作,在布局中呈现时不出现
Rails 6 ActionText rich_text_area works normally, does not appear when rendered in a layout
我正在渲染一个使用 ActionText 输入 rich_text_area 的表单,它是 Trix WYSIWYG 富文本编辑器的 Rails 实现。它一直运行良好,直到我开始重构我的视图以使用布局,其中表单内容可以产生不同的表单。 除了 之外,rich_text_area 的表单呈现良好,它们都消失了。删除使此布局恢复正常所需的代码 returns。我的代码如下。
我正在使用以下代码将表单呈现为部分:
<%= 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" %>
但我想将其呈现为名为 'editor' 的布局的一部分,因此我将 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 助手添加到相关控制器,但无济于事。非常感谢任何帮助,谢谢。
您是否使用 Webpacker 或资产管道设置了 action_text
?
如果您使用 Webpacker 进行设置,您可能需要添加 <%= javascript_pack_tag 'application' %>
如果您使用资产管道进行设置,那么如 @MurifoX 所述,您可能需要 <%= javascript_include_tag 'application' %>
.
我正在渲染一个使用 ActionText 输入 rich_text_area 的表单,它是 Trix WYSIWYG 富文本编辑器的 Rails 实现。它一直运行良好,直到我开始重构我的视图以使用布局,其中表单内容可以产生不同的表单。 除了 之外,rich_text_area 的表单呈现良好,它们都消失了。删除使此布局恢复正常所需的代码 returns。我的代码如下。
我正在使用以下代码将表单呈现为部分:
<%= 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" %>
但我想将其呈现为名为 'editor' 的布局的一部分,因此我将 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 助手添加到相关控制器,但无济于事。非常感谢任何帮助,谢谢。
您是否使用 Webpacker 或资产管道设置了 action_text
?
如果您使用 Webpacker 进行设置,您可能需要添加 <%= javascript_pack_tag 'application' %>
如果您使用资产管道进行设置,那么如 @MurifoX 所述,您可能需要 <%= javascript_include_tag 'application' %>
.