我对ruby语言非常陌生,我遇到了这行代码:
f.options[:chart][:defaultSeriesType] = "bar"
有人可以向我解释一下吗?因为这样做:
f.options([:chart][:defaultSeriesType]) = "bar"
给你一个错误。 提前谢谢!
答案 0 :(得分:3)
f.options
应该是哈希,就像这样
f.options = {:chart => {}}
然后你第一次写的命令就可以了。所以它不是方法调用,而是实际设置哈希值。
希望这有帮助。
答案 1 :(得分:1)
每当您遇到这样的问题时,请打开控制台并使用对象
>f.options.class
=> Hash
>f.options[:chart].class
=> Hash
f.options[:chart]
正在返回哈希。因此,行f.options[:chart][:defaultSeriesType] = "bar"
将哈希值设置为'defaultSeriesType',值为'bar'。
而且,对于键使用符号而不是字符串是一个好习惯,因此前面的冒号 - :defaultSeriesType
答案 2 :(得分:1)
您正在使用哈希处理。
当您怀疑f.options.inspect
时,它会打印出数据结构的内容。
我会用一个例子让你理解:
根据您编写的方式,您似乎正在以这种方式处理更少组织的对象:
f.options = { chart => {defaultSeriesType => "bar"; somethingElse => "bor"}, graph => {attribute1=> "anotherString"} }
所以你可以通过写f.options[:graph][:attribute1]
或f.options[:chart][:somethingElse]
等来查询对象。
我建议你在http://www.tryruby.org上花一分钟时间玩哈希,你也可以看看这里:http://www.troubleshooters.com/codecorn/ruby/basictutorial.htm#_Hashes
当然有帮助