标签: actiontext

使用 ActionText 时转换回纯文本

首先让我说我喜欢 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,我就不再具有对正文文本的原始访问权限。

我不确定如何:

  • 从 body 属性中提取我的原始内容将其转换为没有 html 的纯文本

ruby-on-rails ruby-on-rails-6 actiontext

6
推荐指数
1
解决办法
2781
查看次数

现有文本字段的 Rails 操作文本

我正在将我的一个新闻应用程序升级到 Rails 6.0.0。在解决问题时,我在使用富文本时遇到了问题。我的应用程序指向富文本正文字段而不是我现有的表格正文字段。

是否可以将现有的表格文本字段用于富文本,以便我可以在需要时编辑内容。对于新帖子,我可以使用 action_text_rich_texts 表,但对于现有帖子,我想使用现有表正文字段。

ruby ruby-on-rails-6 actiontext

6
推荐指数
2
解决办法
768
查看次数

Rails 6.0 操作文本找不到类型为“text/css”的文件“trix/dist/trix”

所以我使用 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')

知道我如何解决这个问题吗?

ruby r ruby-on-rails actiontext

5
推荐指数
1
解决办法
2899
查看次数

如何在 ActiveAdmin 表单块中使用 rails 6 ActionText 字段

我已经利用新的 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 支持的任何信息

formtastic activeadmin ruby-on-rails-6 actiontext

4
推荐指数
1
解决办法
1716
查看次数

升级到 ActionText - 编辑器无法正常工作/显示

我正在尝试在已升级到 Rails 6.0.1 的应用程序上实现 ActionText。

我运行rails action_text:install并迁移,然后添加has_rich_text :content到我的comment模型中。然后在我切换f.text_area :content到的形式中f.rich_text_area :content。

但是出现的编辑器看起来像这样并且无法附加文件。我究竟做错了什么?

在此处输入图片说明

ruby-on-rails actiontext

3
推荐指数
2
解决办法
1940
查看次数

ActionText 的非图像附件问题

我正在尝试解决上传非带有操作文本的图像的文件的问题,并使它们对查看帖子的用户有用。例如,如果在创建某些内容时上传了 PDF,用户应该能够下载。

\n\n

现在我的图像上传和显示都很好,但如果我上传了 PDF,它会显示文件名和大小:

\n\n

Bla.pdf 635 KB。看起来这是不可点击的:

\n\n

PDF 文件无法下载

\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>\n
Run Code Online (Sandbox Code Playgroud)\n\n

有什么想法可以让我下载这个吗?

\n\n

谢谢

\n

ruby-on-rails file ruby-on-rails-6 actiontext

3
推荐指数
1
解决办法
1198
查看次数

操作文本 (Trix) 样式无法在生产环境中加载(Rails 6、Heroku)

由于某种原因,我正在努力制作动作文本(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)

javascript ruby-on-rails webpack tailwind-css actiontext

3
推荐指数
1
解决办法
4347
查看次数

如何在新窗口中打开 Action Text Trix 附件或链接(目标_blank)

如何使我在 Trix (ActionText) 编辑器中添加的链接在新窗口中使用 target="_blank" 打开链接?

class Post < ApplicationRecord
  has_rich_text :rich_text_content
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails trix stimulusjs actiontext

3
推荐指数
1
解决办法
1556
查看次数

Rails actiontext/trix 显示问题

我正在尝试将富文本编辑器合并到我的应用程序中,但运气不佳。我本来打算使用 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)

ruby-on-rails trix actiontext

2
推荐指数
2
解决办法
1542
查看次数

不知道如何构建任务“操作文本:安装”

在我的 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)

任何想法为什么会发生这种情况?

先感谢您

ruby-on-rails actiontext

2
推荐指数
1
解决办法
314
查看次数