Как преобразовать строку в ссылку на объект в ruby

Я хочу взять имя страницы на шаге корнишона, а затем установить его как ссылку на объект (думаю, так оно и называется). Затем я могу использовать это для взаимодействия с элементами страницы. Есть ли более простой способ сделать это в рубине?

When(/^I am on the (.*) page$/) do |page|
  case page
  when "home page"
  @current_page = @home_page
  when "my account page"
  @current_page = @my_account_page
  end
end

Затем

When(/^I click the (.*)$/) do |element|
 @current_page.send(element).click
end
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать instance_variable_get:

When(/^I am on the (.*) page$/) do |page|
  @current_page = instance_variable_get("@#{page}")
end

Это будет работать, если значения page идеально соответствуют вашим переменным экземпляра, например.

page = "my_account_page"

# The following two lines are equivalent
instance_variable_get("@#{page}")
@my_account_page

Другие вопросы по теме