【问题标题】:Action text error in form field on production [Heroku + Rails 6]生产中表单字段中的操作文本错误 [Heroku + Rails 6]
【发布时间】:2020-03-05 02:33:18
【问题描述】:

这个神秘的错误是在开发环境中安装操作文本后显示的,然后在代码没有任何更改的情况下消失了。

经过多次测试并在 localhost 上运行良好后,我将其推送到生产环境 (heroku) 并返回:

未定义的方法`rich_text_area_tag'

配置:

models/mailing.rb

class Mailing < ApplicationRecord

  has_rich_text :body

end

红宝石 2.6.5 导轨 6.0.0

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    我正在使用 ActiveAdmin 和友好 ID gem。为避免冲突,我已将这段代码添加到 active_admin 初始化程序。

      ActiveAdmin::ResourceController.class_eval do
      end
    

    这会导致与您相同的错误。

    手动覆盖控制器成功了

    ActiveAdmin.register Category do
      controller do
        def find_resource
          if resource_class.is_a?(FriendlyId)
            scoped_collection.friendly.find(params[:id])
          else
            scoped_collection.find(params[:id])
          end
        end
      end
    end
    

    【讨论】:

      【解决方案2】:

      我认为这是因为一些 gem 或加载顺序问题,并且有点难以调试

      当前的解决方法是手动将帮助程序添加到 application_controller.rb

      require 'action_text'
      
      class ApplicationController < ActionController::Base
        helper ActionText::Engine.helpers
      
        ...
      end
      

      额外参考 https://github.com/rails/rails/pull/38859

      https://github.com/spree/spree/issues/9412

      Rails 6 ActionText isn't working on Heroku (undefined method 'rich_text_area_tag')

      至于我

      出现这个问题是因为我在 devise 配置文件中添加了一个类

      【讨论】:

        猜你喜欢
        • 2020-02-26
        • 2021-01-08
        • 1970-01-01
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        • 2020-01-02
        • 1970-01-01
        相关资源
        最近更新 更多