gpt4 book ai didi

ruby - 轨道外的 cattr_accessor

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:56 25 4
gpt4 key购买 nike

我正在尝试使用 google_search ruby 库(代码如下)但它提示“cattr_accessor 是一个未定义的方法” - 任何想法为什么会这样或我如何解决它?

require 'rubygems'
require 'google_search'

GoogleSearch.web :q => "pink floyd"

最佳答案

cattr_accessor 似乎是一个 Rails 扩展 that acts like attr_accessor, but is accessible on both the class and its instances .

如果您想复制 cattr_accessor 方法的源代码,请查看 this documentation :

# File vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb, line 46
def cattr_accessor(*syms)
cattr_reader(*syms)
cattr_writer(*syms)
end

# File vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb, line 4
def cattr_reader(*syms)
syms.flatten.each do |sym|
next if sym.is_a?(Hash)
class_eval("unless defined? @@\#{sym}\n@@\#{sym} = nil\nend\n\ndef self.\#{sym}\n@@\#{sym}\nend\n\ndef \#{sym}\n@@\#{sym}\nend\n", __FILE__, __LINE__)
end
end

# File vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb, line 24
def cattr_writer(*syms)
options = syms.extract_options!
syms.flatten.each do |sym|
class_eval("unless defined? @@\#{sym}\n@@\#{sym} = nil\nend\n\ndef self.\#{sym}=(obj)\n@@\#{sym} = obj\nend\n\n\#{\"\ndef \#{sym}=(obj)\n@@\#{sym} = obj\nend\n\" unless options[:instance_writer] == false }\n", __FILE__, __LINE__)
end
end

关于ruby - 轨道外的 cattr_accessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002247/

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