gpt4 book ai didi

ruby - ruby 1.9.3 中是否存在与 prepend 方法等效的方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:14 24 4
gpt4 key购买 nike

我需要使用 prepend方法,在ruby 2.0中引入,在ruby 1.9.3中不支持该方法。 ruby 1.9.3 中是否有等效方法?

更新

我需要使用 ruby​​ 1.9.3

module ActiveAdmin::Views::Pages::BaseExtension
def add_classes_to_body
super
@body.set_attribute "ng-app", "MyApp" #I need to add this line
end
end
class ActiveAdmin::Views::Pages::Base
prepend ActiveAdmin::Views::Pages::BaseExtension
end

最佳答案

prepend 改变了核心 Ruby 对象模型,特别是消息发送的方式,在纯 Ruby 中没有办法做到这一点,因此,没有办法向后移植 prepend 功能。

prepend 之前的糟糕日子里,我们曾经这样做:

class ActiveAdmin::Views::Pages::Base
orig = instance_method(:add_classes_to_body)

define_method(:add_classes_to_body) do
orig.bind(self).()
@body.set_attribute "ng-app", "MyApp"
end
end

关于ruby - ruby 1.9.3 中是否存在与 prepend 方法等效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25187071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com