ruby将哈希值传递给方法

时间:2016-04-20 14:13:07

标签: ruby methods hash

我是红宝石的新手,但我正在使用watir-webdriver进行实验。我试图找出如何将哈希值传递给类似的方法:

#this is a hash in ruby - a collection of keys and values
title = { :Mr => "Mr", :Mrs => "Mrs", :Miss => "Miss", :Ms => "Ms", :Other = > "Other"}

def select_title(title)
 @browser.element(:xpath => "//input[@type='radio'][@value='Value of title hash']").click
end

我不想在方法中写一个if if else或switch逻辑,只是将hash的值直接传递给xpath?如何?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,请转到:

def select_title(title_hash_key)
  @browser.element(:xpath => "//...[@value='#{title[title_hash_key]}']")
          .click
end

现在,当散列键作为参数传递给此方法时,将使用字符串插值(xpath将相应的值从散列中提取并放入#{title[title_hash_key]}字符串。)