ruby-on-rails 如何在帮助模块中定义的模型类中使用方法

jjhzyzn0  于 2023-08-08  发布在  Ruby
关注(0)|答案(1)|浏览(83)

我只是试图访问simple_format帮助程序

class Note < ActiveRecord::Base
  include SimpleHelper

 def body_symbols_output_html
    arc_simple_format(body_symbols_output)
  end

字符串
在lib/simple_helper.rb中

module SimpleHelper
  def arc_simple_format txt
    simple_format txt
  end
end


然后得到

NoMethodError (undefined method `simple_format' for #<Note:0x007f7fbb913088>):
  lib/simple_helper.rb:4:in `arc_simple_format'


如何访问simple_format?我知道访问视图级别的帮助器是个坏主意,但这只是提供一个API。

hs1rzwqc

hs1rzwqc1#

您应该简单地包含正确的模块:

include ActionView::Helpers::TextHelper

字符串
我建议的是避免使用所有这些方法破坏你的类,所以你可以在类中创建一个Helper类:

class Note
  delegate :simple_format, to: :helper

  def helper
    Helper.instance
  end

  private

  class Helper
    include Singleton
    include ::ActionView::Helpers::NumberHelper
  end
end

相关问题