首先让我说我喜欢 Rails 6 在 ActionText 中提供的功能。不幸的是,当我为类似 post 模型的属性声明它时:
class Post < ApplicationRecord
has_rich_text :body
end
Run Code Online (Sandbox Code Playgroud)
我无法再访问正文。它成为一个 ActionText 实例。我完全理解这就是此功能的工作原理,但有时我需要将正文的纯文本传递给其他外部方法。在我的例子中,我在我的元描述标签中使用了 body 和一个叫做 meta-tags 的 gem。这样做会导致此错误:
Expected a string or an object that implements #to_str
Run Code Online (Sandbox Code Playgroud)
这是因为在纯文本列变成 AT 实例之前的内容:
=> #<ActionText::RichText id: 39, name: "body", body: #<ActionText::Content "<div class=\"trix-conte...">, record_type: "Post", record_id: 161, created_at: "2019-08-17 17:34:27", updated_at: "2019-08-17 17:34:27">
Run Code Online (Sandbox Code Playgroud)
看到它附带了 getter 方法,我尝试做类似的事情,@post.body.body但这实际上是
=> #<ActionText::Content "<div class=\"trix-conte...">
Run Code Online (Sandbox Code Playgroud)
另请注意,我已尝试在 post 模型中创建一个方法,但是一旦声明了 has_rich_text,我就不再具有对正文文本的原始访问权限。
我不确定如何:
我正在将我的一个新闻应用程序升级到 Rails 6.0.0。在解决问题时,我在使用富文本时遇到了问题。我的应用程序指向富文本正文字段而不是我现有的表格正文字段。
是否可以将现有的表格文本字段用于富文本,以便我可以在需要时编辑内容。对于新帖子,我可以使用 action_text_rich_texts 表,但对于现有帖子,我想使用现有表正文字段。
所以我使用 rails 6.0.1 并尝试使用 Action 文本。所以我运行命令rails action_text:install
并添加 gem image_processing 最后运行 rails db:migrate
当我启动我的应用程序时,我收到此错误消息:
Sprockets::FileNotFound in Hotels#index
Showing /myapp/app/views/layouts/application.html.erb where line #8 raised:
couldn't find file 'trix/dist/trix' with type 'text/css'
Checked in these paths:
/myapp/app/assets/config
/myapp/app/assets/images
/myapp/app/assets/javascripts
/myapp/app/assets/stylesheets
/usr/local/bundle/gems/cloudinary-1.13.1/vendor/assets/html
/usr/local/bundle/gems/cloudinary-1.13.1/vendor/assets/javascripts
/usr/local/bundle/gems/activeadmin-2.5.0/app/assets/javascripts
/usr/local/bundle/gems/activeadmin-2.5.0/app/assets/stylesheets
/usr/local/bundle/gems/activeadmin-2.5.0/vendor/assets/javascripts
/usr/local/bundle/gems/jquery-rails-4.3.5/vendor/assets/javascripts
/usr/local/bundle/gems/formtastic-3.1.5/app/assets/stylesheets
/usr/local/bundle/gems/actioncable-6.0.1/app/assets/javascripts
/usr/local/bundle/gems/activestorage-6.0.1/app/assets/javascripts
/usr/local/bundle/gems/actionview-6.0.1/lib/assets/compiled
/usr/local/bundle/gems/turbolinks-source-5.2.0/lib/assets/javascripts
/myapp/node_modules
Run Code Online (Sandbox Code Playgroud)
在assets/config/stylesheets/actiontext.scss下我有:
//= require trix/dist/trix
和config/initiliazers/assets.rb:
Rails.application.config.assets.paths << Rails.root.join('node_modules')
知道我如何解决这个问题吗?
我已经利用新的 ActionText 功能构建了一个小型 rails 6 应用程序。但是,ActiveAdmin 中似乎不支持新字段类型 (rich_text_area)
我尝试使用 gem active_admin_trix,它有效(如果你在 active_admin 中加载 trix v1.2,但它不会在编辑字段中显示该字段的现有值
我也试过只加载 trix 库并使用 f.rich_text_area 即:
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs do
f.input :name
f.rich_text_area :description
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
虽然这可以正常工作,但它不会显示“标签”,因为该字段在 ActiveAdmin 布局中不适合。但是它确实正确显示了当前内容
有没有其他人在 ActiveAdmin 中成功使用过 ActionText
我的猜测是需要 Formtastic 支持,但我也无法在 Formtastic 中找到有关 ActionText 支持的任何信息
我正在尝试在已升级到 Rails 6.0.1 的应用程序上实现 ActionText。
我运行rails action_text:install并迁移,然后添加has_rich_text :content到我的comment模型中。然后在我切换f.text_area :content到的形式中f.rich_text_area :content。
但是出现的编辑器看起来像这样并且无法附加文件。我究竟做错了什么?
我正在尝试解决上传非带有操作文本的图像的文件的问题,并使它们对查看帖子的用户有用。例如,如果在创建某些内容时上传了 PDF,用户应该能够下载。
\n\n现在我的图像上传和显示都很好,但如果我上传了 PDF,它会显示文件名和大小:
\n\nBla.pdf 635 KB。看起来这是不可点击的:
\n\n\n\n下面的 html 是:
\n\n<action-text-attachment sgid=\xe2\x80\x9dBAh7CEkiCGdpZAY6BkVUSSI4Z2lkOi8vdGFhYWxrLWVkZ2UvQWN0aXZlU3RvcmFnZTo6QmxvYi82OD9leHBpcmVzX2luBjsAVEkiDHB1cnBvc2UGOwBUSSIPYXR0YWNoYWJsZQY7AFRJIg9leHBpcmVzX2F0BjsAVDA= \xe2\x80\x94 9fc1638e6a6bca562cbff92f1627dfcf9e74f198" content-type=\xe2\x80\x9dapplication/pdf\xe2\x80\x9d url="http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBTUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5da8c8c82a642f3ed3f0c158a2560a7a41b974c7/Bla.pdf" filename=\xe2\x80\x9dBla.pdf\xe2\x80\x9d filesize=\xe2\x80\x9d649993"><figure class=\xe2\x80\x9dattachment attachment \xe2\x80\x94 file attachment \xe2\x80\x94 pdf\xe2\x80\x9d>\n<figcaption class=\xe2\x80\x9dattachment__caption\xe2\x80\x9d>\n<span class=\xe2\x80\x9dattachment__name\xe2\x80\x9d>Bla.pdf</span>\n<span class=\xe2\x80\x9dattachment__size\xe2\x80\x9d>635 KB</span>\n</figcaption>\n</figure></action-text-attachment>\nRun Code Online (Sandbox Code Playgroud)\n\n有什么想法可以让我下载这个吗?
\n\n谢谢
\n由于某种原因,我正在努力制作动作文本(Trix 编辑器)图标栏以在生产环境(Heroku)中加载。我正在使用 Rails 6 和 TailwindCSS 构建一个相对简单的 Web 应用程序。操作文本在本地和生产中都具有完整的功能,但是虽然样式按预期加载到我的本地计算机上,但我无法使其在生产中工作。
应用程序/javascript/stylesheets/application.scss
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'trix/dist/trix.css';
@import "components/actiontext";
/*! purgecss start ignore */
@import "components/buttons";
@import "components/forms";
/*! purgecss end ignore */
Run Code Online (Sandbox Code Playgroud)
应用程序/javascript/packs/application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("trix")
require("@rails/actiontext")
import "stylesheets/application"
import "controllers"
Run Code Online (Sandbox Code Playgroud)
应用程序/javascript/stylesheets/components/actiontext.scss
@import "trix/dist/trix.css";
// trix-toolbar {
// .trix-button {
// @apply bg-white border-0;
// }
// .trix-button-group {
// border: 0;
// }
// .trix-button--icon-bold {
// @apply rounded-tl rounded-bl;
// }
// …Run Code Online (Sandbox Code Playgroud) 如何使我在 Trix (ActionText) 编辑器中添加的链接在新窗口中使用 target="_blank" 打开链接?
class Post < ApplicationRecord
has_rich_text :rich_text_content
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试将富文本编辑器合并到我的应用程序中,但运气不佳。我本来打算使用 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: …Run Code Online (Sandbox Code Playgroud) 在我的 Rails 6 应用程序中,我尝试使用以下命令安装 action_text:
rails action_text:install
Run Code Online (Sandbox Code Playgroud)
但我得到:
Don't know how to build task 'action_text:install'
Run Code Online (Sandbox Code Playgroud)
我的 rails 6 应用程序是用以下内容构建的:
rails new keeper --skip-test --skip-bundle --database=postgresql --skip-turbolinks --skip-active-storage
Run Code Online (Sandbox Code Playgroud)
配置/应用程序.rb
rails action_text:install
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生这种情况?
先感谢您
actiontext ×10
ruby ×2
trix ×2
activeadmin ×1
file ×1
formtastic ×1
javascript ×1
r ×1
stimulusjs ×1
tailwind-css ×1
webpack ×1