Как реализовать что-то похожее на public_send для неклассовых переменных в Ruby on Rails? - PullRequest
0 голосов
/ 02 июля 2019

Я выполняю запрос в своем коде Rails:

  check1 = ActiveRecord::Base.connection.execute("SELECT ...")
  check2 = ActiveRecord::Base.connection.execute("SELECT ...")

В таблицах, использованных выше, будут столбцы для каждого рабочего дня месяца.Таким образом, у меня есть столбцы от day1 до day23, и если в месяце есть только 22 рабочих дня, то day23 будет нулевым

Теперь мне нужно выполнить это для всех 23 дней

  if check1.day1 = check2.day1
    day1_style = <some value>
  end

Мне нужнонапишите вышеупомянутые 3 строки кода для всех 23 дней.

Я могу думать об этом:

  if check1.public_send(day#{n}) = check2.public_send(day#{n})
    day<how to represent n here?>_style = <some value>
  end

Я знаю, public_send будет работать для условия if, показанного выше.

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

1 Ответ

0 голосов
/ 02 июля 2019

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

day_styles = []
if check1.public_send("day#{n}") == check2.public_send("day#{n}")
  day_styles[n] = <some value>
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...