Как создать переменные экземпляра с помощью итератора - PullRequest
0 голосов
/ 10 января 2020

У меня есть лаборатория в школе, где мне нужно создать форму, которая принимает атрибуты баскетбольной команды, имя команды, тренера, разыгрывающего и т. Д. c. И хочу узнать, есть ли способ динамического создания переменных экземпляра и символы, использующие своего рода итератор вместо жесткого их кодирования?

Вот жестко закодированная версия того, что я имею в виду:

post "/team" do
  @name = params["name"]
  @coach = params["coach"]
  @pg = params["pg"]
  @sg = params["sg"]
  @pf = params["pf"]
  @sf = params["sf"]
  @c = params["c"]
  erb :team
end

Я хочу использовать нечто похожее на это:

post '/team' do
  params.each do |parameter|
    @[parameter] = params["#{parameter}"]
  end
  erb :team
end

Когда я запускаю приведенный выше код, я получаю неожиданную синтаксическую ошибку конца ввода.

1 Ответ

0 голосов
/ 10 января 2020

Попробуйте использовать instance_variable_set, примерно так:

post '/team' do
  params.each do |key, value|
    self.instance_variable_set("@#{key}", value)
  end
  erb :team
end
...