Я пытаюсь включить в свое приложение многофункциональный текстовый редактор, и мне не везет. Я собирался go с CKEditor, но столкнулся с тем фактом, что в Rails 6 довольно хорошо интегрирован actiontext / trix .... или так я думал.
Я выполнил стандартные шаги установки из https://edgeguides.rubyonrails.org/action_text_overview.html
Итак, если я что-то пропустил, у меня теперь есть следующий код в этих файлах:
app / javascript / packs / actiontext.s css
@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;
}
}
}
app / 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")
app / javascript / packs / application.s css
@import "./actiontext.scss";
Модель, для которой должен отображаться редактор: app / models / note.rb
class Note < ApplicationRecord
has_rich_text :comment
end
И связанный вид / форма теперь ниже, только с полем 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 %>
Я в недоумении ... кнопки вообще не отображаются:
Что я пропустил?
Обновление 1: Я переместил actiontext.scss
с .../packs/
и поместил в app/assets/stylesheets/
и изменил d Некоторые из импортов:
Итак, теперь app/assets/stylesheets/application.scss
это просто:
//= require actiontext
Я перезапустил webpacker и мой сервер rails:
> bin/webpack-dev-server
> rails s
и теперь я Я получаю кнопки, но у них нет значков:
Обновление 2:
Получил кнопки для отображения значков ... наконец. Не уверен, что это правильно, поскольку это не задокументировано, но мне пришлось вручную импортировать application.scss
.
.. / layouts / application. html .erb Я добавил:
<%= stylesheet_link_tag "application" %>