设置在ruby capybara中接收参数的动态变量名称

时间:2017-07-25 18:48:20

标签: ruby capybara

我正在尝试根据用户传递的值设置变量名称

我的水豚步骤看起来像这样:

When(/^I have a value to save for user [0-9]$/) do |number|
  @user_value_#{number} = another_variable
end

这似乎不起作用。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您需要使用Object#instance_variable_set,所以

instance_variable_set(“@user_value_#{number}”, another_variable)

答案 1 :(得分:0)

这就是我解决这个问题的方法:

 When(/^I have a value to save for user [0-9]$/) do |number|
   @user_value ||= {}
   @user_value[number]
 end

我希望这会有所帮助