【问题标题】:Can't get Rails Action Text in console无法在控制台中获取 Rails 操作文本
【发布时间】:2020-07-17 22:24:40
【问题描述】:

当我使用操作文本保存模型时,内容会保存到数据库中,但无法通过控制台访问。

我有一个带有 has_rich_text :content 的 Section 模型

当我尝试创建新记录时,它会创建富文本关联,但正文始终为空白。

section.content = '<p>Hello world</p>'
section.save
=> true
section.content
=> #<ActionText::RichText id: 6, name: "content", body: #<ActionText::Content " ">, record_type: "Section", record_id: 2, created_at: "2020-05-07 13:49:58", updated_at: "2020-05-07 14:00:36">
section.content.to_s
=> " "
section.content.body
=> #<ActionText::Content " ">

它在数据库中正确设置,我的代码在序列化程序中访问该值并发送正确的content。但是,我想通过控制台访问此内容。

【问题讨论】:

  • 当您在控制台中输入section.content? 时会返回什么?
  • section.content.to_s 是否返回您存储在内容中的字符串?
  • NoMethodError (undefined method `content?' for #&lt;Section:0x00007ff459fbc340&gt;) Did you mean? content content=
  • 我确实注意到它实际上是在数据库中设置它,但我无法从控制台访问内容。它没有返回 HTML,而是返回一个空白的 ActionText::Content
  • to_s 只返回" "(一个带一个空格的字符串),而不是数据库中的内容

标签: ruby-on-rails richtext actiontext


【解决方案1】:

使用仅 API 设置时,ActionText 似乎存在问题。

见:https://github.com/rails/rails/issues/39266

下面的代码返回" ",这不应该是这样的。

section.content.to_s
 => " "

section.content.body.to_s
 => " "

作为替代方案,您可以使用以下方法:

section.content.body.to_html
 => "<p>Hello world</p>"

编辑: 我刚刚注意到这个问题的 OP 和 Rails 存储库中问题的 OP 是一样的。由于我自己遇到了这个问题并花了一段时间在 Rails 存储库中找到了这个问题,所以我将把答案放在可见性上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多