无法访问哈希的特定值--Rails

时间:2015-10-15 17:15:18

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

您好我一直在尝试访问以下哈希的令牌值而无效

email.to[{:token=>"example", :host=>"HOSTNAME here", :email=>"example email", :full=>"example@email.com", :name=>nil}]

是不是email.to[:token]给了我令牌的价值?

当我这样做时,我得到了这个

TypeError (no implicit conversion of Symbol into Integer):

如果没有,那么正确的方法是什么。当我只需要一个值时,在循环中有什么意义吗?

1 个答案:

答案 0 :(得分:1)

email.to 方法返回包含哈希

的数组
[{:a=>"a", :b=>"b"}]

所以你必须首先指定该数组中元素的索引

email.to[0][:a]

email.to.first[:a]

为了在没有索引的情况下访问Hash,email.to方法必须返回Hash而不是Array类型。所以它必须是像这样的东西

def to
  {:a=>"a", :b=>"b"}
end