使用ActionText在Rails 5.2中显示现有内容

时间:2019-06-29 09:28:24

标签: ruby-on-rails ruby-on-rails-5 actiontext

由于旧的trix编辑器/ gem不再起作用,因此我已将我的应用程序升级到5.2并倾向于使用ActionText。 现在,新帖子会显示其“描述”,但是如何使用新安装的ActionText显示旧帖子的描述?

post.rb has_rich_text :description

posts_controller.rb ...params.require(:post).permit(:description)

_form.html.erb <%= f.rich_text_area :description %>

show.html.erb <%= @post.description %>

描述仅从ActionText中的新记录中获取,而不会从旧帖子的现有“描述”列中显示

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但是在rails回购或任何地方都找不到干净的解决方案。作为一种解决方法,就您而言,我会尝试:

  

show.html.erb:
  <%= @post.try(:description).body || @post[:description] %>

那不能解决问题,但是可以帮助您填充旧的帖子值。

答案 1 :(得分:0)

这个答案对我有用。它还具有清理数据库中用于普通(非富文本)内容的表的额外好处。

”假设您的模型中有一个“内容”,这就是您要迁移的内容,首先,将其添加到您的模型中:“

has_rich_text :content

“然后创建迁移”

rails g migration MigratePostContentToActionText
class MigratePostContentToActionText < ActiveRecord::Migration[6.0]
  include ActionView::Helpers::TextHelper
  def change
    rename_column :posts, :content, :content_old
    Post.all.each do |post|
      post.update_attribute(:content, simple_format(post.content_old))
    end
    remove_column :posts, :content_old
  end
end

您可以在这里找到我使用的原始解决方案 https://github.com/rails/rails/issues/35002#issuecomment-562311492