处理哈希数组

时间:2015-05-27 08:48:29

标签: arrays ruby hash

我有一系列哈希

def factory_girl_users
  Hash[user_1: FactoryGirl.attributes_for(:automated_user), user_2: FactoryGirl.attributes_for(:automated_user_1)]
end
# {:user_1=>{:username=>"username_1", :password=>"password"}, :user_2=>{:username=>"username_2", :password=>"password"}}

然后我想选择一个随机用户,所以将factory_girl_users的哈希值放入一个数组中,然后使用pop选择一个

def choose_user
  user_array = factory_girl_users.to_a
  @user = user_array.pop
end

所以在这个阶段@user看起来像

[:user_2, {:username=>"username_2", :password=>"password"}]

我的第一个问题是如何访问用户名和密码值

其次,我将如何获得{:username=>"username_2", :password=>"password"}返回

我希望能够通过执行

来访问这些值
@user[:username]

2 个答案:

答案 0 :(得分:2)

由于您不关心密钥(来自哈希),您可以这样做:

user_array = factory_girl_users.values
@user = user_array.pop
@user[:password]

答案 1 :(得分:1)

(1)访问用户名和密码值

ini_set('SMTP', 'yourhost.com');

(2)

hash = [:user_2, {:username=>"username_2", :password=>"password"}]
hash[1]
=> {:username=>"username_2", :password=>"password"}
hash[1][:username]
=> "username_2"
hash[1][:password]
=> "password"