Rails 6 ActionText не работает на Heroku (неопределенный метод 'rich_text_area_tag')
Я использую ActionText для редактирования абзаца, и он отлично работает локально, но при развертывании его на Heroku на странице, имеющей форму с rich_text_area, выдается сообщение об ошибке с неопределенным методом rich_text_area_tag, хотя я следовал руководству по rails. Я думал, что мне нужно настроить 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 %>
3 ответа
Я нашел это онлайн, и это было полезно для меня:
https://github.com/JoeWoodward/spree_helper_issue
Я не уверен, что это правильный способ сделать это, но это временное решение.
Прежде всего убедитесь, что у вас есть эта строка в 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.
Чтобы не загромождать
ApplicationController
код, вы можете использовать инициализатор:
т.е. добавить новый файл
config/initializers/action_text.rb
:
ActiveSupport.on_load(:action_view) do
include ActionText::ContentHelper
include ActionText::TagHelper
end
Вдохновлен комментарием p8 в закрытомвыпуске Rails .