我解决了它,创建了一个自定义格式输入和一些 CSS
我将以下内容放在 app/admin/inputs/action_text_input.rb
class ActionTextInput < Formtastic::Inputs::StringInput
def to_html
input_wrapping do
editor_tag_params = {
input: input_html_options[:id],
class: 'trix-content'
}
editor_tag = template.content_tag('trix-editor', '', editor_tag_params)
hidden_field = builder.hidden_field(method, input_html_options)
label_html + hidden_field + editor_tag
end
end
end
将以下内容添加到 /app/assets/stylesheets/active_admin.scss 的末尾
.active_admin {
form trix-editor {
margin-left: 20%;
width: calc(80% - 17px);
}
}
然后你在你的 ActiveAdmin 表单中调用它
f.input :your_active_text_field, as: :action_text
此外,正如@Robert 在回答中所建议的那样,添加
:your_input_field
进入permit_params
_your_active_admin_page.rb
//= require trix/dist/trix
至assets/javascripts/active_admin.js
@import "trix/dist/trix";
至assets/stylesheets/active_admin.scss
更新的 CSS
对于更新的 activeadmin 版本,宽度有点不同。当您单击按钮时,请考虑以下 CSS 来处理该问题和链接对话框link
。
.active_admin {
form trix-editor, form .trix-dialogs .trix-dialog--link {
margin-left: 20%;
width: calc(80% - 22px);
border: 1px solid #c9d0d6;
border-radius: 3px;
}
form trix-editor {
min-height: 100px;
margin-top: 10px;
padding: 8px 10px 7px;
background-color: white;
&:focus {
border: 1px solid #99a2aa;
box-shadow: 0 0 4px #99a2aa;
outline: none;
}
}
form .trix-dialogs .trix-dialog--link {
margin-top: 10px;
margin-bottom: 10px;
padding: 10px;
background-color: #eeeeee;
.trix-button-group {
margin-top: 10px;
}
}
}