【发布时间】:2014-08-22 17:26:15
【问题描述】:
我在 Ruby 中看到一些我不理解的特殊内容,想知道是否有人可以告诉我我缺少什么。这是一些撬输出:
[77] pry(main)> c.fields['iparties'].type
=> Array
[78] pry(main)> c.fields['iparties'].type == Array
=> true
[79] pry(main)> case c.fields['iparties'].type
[79] pry(main)* when Array
[79] pry(main)* puts "Array!"
[79] pry(main)* else
[79] pry(main)* puts "Something else?"
[79] pry(main)* end
Something else?
=> nil
c 是一个 Mongoid 对象,显然我正在查看模型字段之一的类型。该字段是一个数组,如第 77 行所示,并在第 78 行的比较中确认。但是,当我通过“when”语句运行它时,它与数组比较器不匹配。如果我将案例定义更改为
case c.fields['iparties'].type.to_s
我将数组匹配更改为
when 'Array'
它按预期工作,输出为“Array!”。
我不明白为什么它不能像这里显示的那样工作,所以如果有人可以向我解释一下,我将非常感激。
【问题讨论】:
标签: ruby mongoid pry case-statement