Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Monkey修补Rails标记的辅助方法_Ruby On Rails_Ruby_Monkeypatching - Fatal编程技术网

Ruby on rails Monkey修补Rails标记的辅助方法

Ruby on rails Monkey修补Rails标记的辅助方法,ruby-on-rails,ruby,monkeypatching,Ruby On Rails,Ruby,Monkeypatching,Rails 6.1发布了一个tag_助手的改进(特别是针对的),我现在需要它,用于我的Rails 6.0.x应用程序。基本上,改进只是一行代码中的一个非常小的更改,所以现在只需对当前的rails方法进行修补并获得改进应该很简单,对吗 具体地说,我正试图用下面的代码来修补下面的代码,但是代码没有被应用。我做错了什么 lib/core\u ext/rich\u text\u area.rb 您可以在lib/core\u ext/rich\u text\u area.rb文件中以更干净的方式进行修补:

Rails 6.1发布了一个tag_助手的改进(特别是针对的),我现在需要它,用于我的Rails 6.0.x应用程序。基本上,改进只是一行代码中的一个非常小的更改,所以现在只需对当前的rails方法进行修补并获得改进应该很简单,对吗

具体地说,我正试图用下面的代码来修补下面的代码,但是代码没有被应用。我做错了什么

lib/core\u ext/rich\u text\u area.rb


您可以在lib/core\u ext/rich\u text\u area.rb文件中以更干净的方式进行修补:

注意:您在尝试使用
class\u eval
时遇到的错误
RailError:uninitialized constant ActionView::Helpers::Tags::ActionText(NameError)
可以通过使用
require'action\u text/tag\u helper'


来源:

尝试将代码放入初始值设定项/action\u view/helpers/tags.rb;)如果有,请告诉我works@AlexisClarembeau,不起作用。我没有打开这个类,而是用Tags::ActionText.class_eval do替换了第2行(如果这个类还不存在的话,它会失败)——id做了什么。RailsError:未初始化的常量ActionView::Helpers::Tags::ActionText(NameError)。这可能是一个线索,但不确定如何从这里开始。
module ActionView::Helpers
  class Tags::ActionText < Tags::Base

    def render
      options = @options.stringify_keys
      debugger
      add_default_name_and_id(options)
      options["input"] ||= dom_id(object, [options["id"], :trix_input].compact.join("_")) if object
      @template_object.rich_text_area_tag(options.delete("name"), options.fetch("value") { editable_value }, options.except("value"))
    end

  end
end
Dir[File.join(Rails.root, 'lib', 'core_ext', '*.rb')].each { |l| require l }
require 'action_text/tag_helper'

module ActionTextOverride
  def render
    options = @options.stringify_keys
    add_default_name_and_id(options)
    options['input'] ||= dom_id(object, [options['id'], :trix_input].compact.join('_')) if object
    @template_object.rich_text_area_tag(options.delete('name'), options.fetch('value') { editable_value }, options.except('value'))
  end
end

class ActionView::Helpers::Tags::ActionText
  prepend ActionTextOverride

end