Oli*_*ing 0 ruby wysiwyg ruby-on-rails rich-text-editor trix
我在将Action Text gem实施到我的Rails 5.2.1应用程序时遇到了困难。
我遵循了安装指南,富文本编辑器不会出现在我的 _form 视图中。
然后我意识到它需要带有webpacker和active storage 的Rails 6。更改我的 gemfile 的 Rails 版本并运行rails upgrade不起作用,所以我添加了 webpacker 和 active storage gems 并将其与我当前的 5.2.1 版本捆绑在一起。那也没有用。
我真的很想在我的应用程序中有一个富文本编辑器。它不一定是 Trix 编辑器,但由于它是 v6 的原生编辑器,我认为这是显而易见的选择。
参考我的源代码
完美的选择,在我使用 rails 5.2.3 的新应用程序上进行了测试。请不要操作文本需要 ruby 2.5.3 以上。第一:添加webpacker
您可以使用新的 --webpack 选项在设置新的 Rails 5.1+ 应用程序期间添加 Webpacker:
rails new myapp --webpack
Run Code Online (Sandbox Code Playgroud)
或者将其添加到您的 Gemfile 中:
gem 'webpacker', '~> 4.x'
Run Code Online (Sandbox Code Playgroud)
gem 'webpacker', git: 'https://github.com/rails/webpacker.git'
yarn add https://github.com/rails/webpacker.git
Run Code Online (Sandbox Code Playgroud)
现在使用图像魔法将 Actiontext 添加到您的 gem 文件中:
gem'actiontext',github:'kobaltz/actiontext',branch:'archive',require:'action_text'
gem 'image_processing'
Run Code Online (Sandbox Code Playgroud)
最后,运行以下命令安装 Webpacker:
bundle
bundle exec rails webpacker:install
rails action_text:install
rails db:migrate
brew install imagemagick vips
Run Code Online (Sandbox Code Playgroud)
将此添加到您的视图/布局/应用程序的头部部分
#layouts/application.html.erb
<%= javascript_pack_tag 'application' %>
Run Code Online (Sandbox Code Playgroud)
在您的模型中,它可能是文章或模型中的任何内容
class Article < ApplicationRecord
has_rich_text :content
end
Run Code Online (Sandbox Code Playgroud)
在你的控制器中
#controllers/articles_controller.rb
def article_params
params.require(:article).permit(:name, :content)
end
Run Code Online (Sandbox Code Playgroud)
以你的形式
#_form.html.erb
<div class="field">
<%= form.label :content %>
<%= form.rich_text_area :content %>
</div>
Run Code Online (Sandbox Code Playgroud)
最后在您的视图中显示内容;
<h1><%= @article.name %></h1>
<p><%= @article.content %></p>
Run Code Online (Sandbox Code Playgroud)
可选:要修复“未满足的对等依赖项”警告,
yarn upgrade
Run Code Online (Sandbox Code Playgroud)
您可以在此处观看完整视频:https : //www.driftingruby.com/episodes/using-action-text-in-a-rails-5-2-application