小编Bec*_*cca的帖子

当我调用类的实例方法时,为什么不将initialize作为方法出现?

我正在撰写一篇关于Ruby中几乎所有东西都是对象的博客文章,我试图通过以下示例来展示:

class CoolBeans
  attr_accessor :beans

  def initialize
    @bean = []
  end

  def count_beans
    @beans.count
  end 

end
Run Code Online (Sandbox Code Playgroud)

所以从查看课程我们可以告诉它有4种方法(除非当然,我错了):

  1. 它可以在创建新实例时初始化默认的空bean数组
  2. 它可以计算它有多少豆
  3. 它可以读取它有多少豆(通过attr_accessor)
  4. 它可以将更多的bean写入(或添加)到空数组(也通过attr_accessor)

但是,当我向类本身询问它具有哪些实例方法时,我没有看到默认initialize方法:

CoolBeans.new.class.instance_methods
# => [:beans, :beans=, :count_beans, :lm, :lim, :nil?, :===, :=~, :!~, :eql?, :hash, :<=>, :class, :singleton_class, :clone, :dup, :itself, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :singleton_method, …
Run Code Online (Sandbox Code Playgroud)

ruby

5
推荐指数
1
解决办法
92
查看次数

Ruby Hash无法在Rails控制台中转换为JSON

我正在使用Locu API,目前已将HTTParty请求的结果放入名为data的ruby哈希中。

我试图调用data.to_json,这在我的哈希中放了反斜杠:

data.to_json
 => "{\"meta\":{\"limit\":25,\"cache-expiry\":3600}
Run Code Online (Sandbox Code Playgroud)

有人发布了相同的问题,该问题已解决,如下所示:

puts data.to_json
Run Code Online (Sandbox Code Playgroud)

不幸的是,这根本不会改变我的哈希值。有任何想法吗?

ruby hash json ruby-on-rails

0
推荐指数
1
解决办法
1594
查看次数

标签 统计

ruby ×2

hash ×1

json ×1

ruby-on-rails ×1