God*_*a74 2 ruby-on-rails trix actiontext
我正在尝试将富文本编辑器合并到我的应用程序中,但运气不佳。我本来打算使用 CKEditor,但发现 Rails 6 的 actiontext/trix 集成得很好……或者我是这么想的。
我遵循了https://edgeguides.rubyonrails.org/action_text_overview.html 中的标准安装步骤
所以,除非我错过了什么,我现在在这些文件中有以下代码:
应用程序/javascript/packs/actiontext.scss
@import "trix/dist/trix";
.trix-content {
.attachment-gallery {
> action-text-attachment,
> .attachment {
flex: 1 0 33%;
padding: 0 0.5em;
max-width: 33%;
}
&.attachment-gallery--2,
&.attachment-gallery--4 {
> action-text-attachment,
> .attachment {
flex-basis: 50%;
max-width: 50%;
}
}
}
action-text-attachment {
.attachment {
padding: 0 !important;
max-width: 100% !important;
}
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/javascript/packs/application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
import $ from 'jquery';
import 'bootstrap/dist/js/bootstrap';
$(document).on('turbolinks:load', function() {
$('body').tooltip({
selector: '[data-toggle="tooltip"]',
container: 'body',
});
$('body').popover({
selector: '[data-toggle="popover"]',
container: 'body',
html: true,
trigger: 'hover',
});
});
require("trix")
require("@rails/actiontext")
Run Code Online (Sandbox Code Playgroud)
应用程序/javascript/packs/application.scss
@import "./actiontext.scss";
Run Code Online (Sandbox Code Playgroud)
我希望编辑器显示的模型是: app/models/note.rb
class Note < ApplicationRecord
has_rich_text :comment
end
Run Code Online (Sandbox Code Playgroud)
相关的视图/表单现在在下面,只有comment启用了丰富的字段:
app/views/notes/edit.html.erb
<%= form_for @note, url: project_target_note_path(id: @note.id) do |f| %>
<div class="form-group">
<%= f.label :title %>
<%= f.text_field :title, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :comment %>
<%= f.rich_text_area :comment, cols: 20, rows: 40, class: "form-control" %>
</div>
<div>
<%= f.submit "Update", class: "btn btn-success" %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我在这里不知所措......根本没有显示任何按钮:
我错过了什么?
更新 1:
我将其actiontext.scss移出.../packs/并放入app/assets/stylesheets/并更改了一些导入:
所以,现在app/assets/stylesheets/application.scss很简单:
//= require actiontext
Run Code Online (Sandbox Code Playgroud)
我重新启动了 webpacker 和我的 rails 服务器:
> bin/webpack-dev-server
> rails s
Run Code Online (Sandbox Code Playgroud)
更新 2:
得到了用图标显示的按钮......终于。不确定这是否正确,因为它没有记录,但我不得不手动导入application.scss.
../layouts/application.html.erb 我补充说:
<%= stylesheet_link_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
如果有人遇到同样的问题:对我来说,它有助于导入 trix 样式和新的 actiontext 样式表application.scss(不仅仅是 Rails 指南中建议的样式表)。对我来说,订单也很重要!
// application.scss
@import "trix/dist/trix";
@import "./actiontext.scss";
Run Code Online (Sandbox Code Playgroud)
小智 5
对于rails 6,你需要 require import 'trix/dist/trix.css';inside javascript/packs/application.js(对于 css 样式)
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |