我正在使用ActionText编辑一个段落,该段落在本地运行得很好,但是当我将其部署到Heroku时,该页面的格式为rich_text_area,即使我遵循了rails指南,也会抛出一个错误,提示未定义的方法rich_text_area_tag。我以为我需要在生产中配置Active Storage,但事实并非如此。
这是我在Heroku的日志中得到的内容:
ActionView::Template::Error (undefined method 'rich_text_area_tag' for #<#<Class> Did you mean? rich_text_area)
<%= f.label :something, class:'label' %>
<%= f.rich_text_area :something %>
答案 0 :(得分:7)
我在网上找到了它,这对我有帮助:
https://github.com/JoeWoodward/spree_helper_issue
我不确定这是否是正确的方法,但这只是暂时的解决方法。
解决方案:
在application_controller.rb
中输入以下内容:
require 'action_text'
class ApplicationController < ActionController::Base
helper ActionText::Engine.helpers
...
end
helper
的文档:https://apidock.com/rails/AbstractController/Helpers/ClassMethods/helper
答案 1 :(得分:2)
首先请确保您在config / application.rb中有以下行:
require 'rails/all'
如果是Rails 6应用,则应加载action_text/engine
。
如果没有,则可能未加载zeitwerk。当您将Rails 5.2应用程序更新为Rails 6时,就会发生这种情况。
在同一文件(config / application.rb)中,您必须将config.load_defaults更改为6.0:
config.load_defaults 6.0
如果您想知道背景发生了什么,请查看第125行的this link。
答案 2 :(得分:0)