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 .

Другие вопросы по тегам