首页 > 解决方案 > activeadmin中自定义页面上的CKEditor

问题描述

我遇到了以下问题:

我想在自定义页面(无模型)上添加一个表单来设计 mailjet 的电子邮件。我已经有了一个自定义页面和一个带有 CKEditor 输入和主题输入的表单。但主题字段未显示在页面上。

这是我的代码:

ActiveAdmin.register_page "Mail", namespace: :lku do

  def send_mail

  end

  content do
    panel 'Write mail' do

      semantic_form_for :mail, :url => "lku/send_mail", method: :post do |f|

        f.inputs do
          f.input :subject, :input_html => { :name => 'subject' }
        end
        f.inputs do

        f.input :text, as: :ckeditor, :input_html => { :name => 'text' }
        end
      end
    end
  end
end

这是结果:

没有主题字段的ckeditor

当我添加

f.actions

看起来像这样

只需提交按钮

有人能帮助我吗?

标签: ruby-on-railsckeditoractiveadminckeditor4.x

解决方案


我能够在没有 ckeditor 的情况下重现该问题。只有表单的最后一个元素会显示。

我不确切知道发生了什么,但这与 Arbre 如何渲染您在content块内生成的内容有关。

我的解决方案是这样

  1. 将表单内容转换为 .erb 并将表单移至下方views/lku/mail/_mailform.html.erb

    <%= semantic_form_for :mail do |f| %>
      <%= f.inputs do %>
        <%= f.input :subject %>
        <%= f.input :text %>
      <% end %>
      <%= f.actions %>
    <% end %>
    
  2. 在页面中包含表单

    content do
      panel 'Write mail' do
        render partial: 'mailform'      
      end
    end
    

看看您是否仍然可以使用常规 Rails 表单助手安装编辑器 - https://github.com/galetahub/ckeditor#form-helpers


推荐阅读