Найти одинаковые значения между массивом и переменной активной записи в ruby

#ruby-on-rails #ruby #activerecord

#ruby-на-рельсах #рубиновый #activerecord #ruby-on-rails #ruby

Вопрос:

Должно быть простым и, возможно, несколько усложнило название.

У меня есть переменная, которая содержит записи:

 @record = Records.all
  

и массив, содержащий некоторые идентификаторы task_id:

 @array #has for e.g. [1,2,3]
  

Что я хочу сделать, проверьте столбец task_id списка записей в @records, чтобы узнать, содержат ли они какие-либо числа в массиве. Если они это сделают, я хочу, чтобы эти числа были помещены в другой массив.

я знаю, что это просто, но я продолжаю путаться по пути, поскольку я совершенно новичок в синтаксисе ruby.

Ответ №1:

Это должно сработать для вас:

 @records.map(amp;:task_id) amp; @array
  

Это создает пересечение двух списков (task_ids и array). Вы можете попробовать этот пример на консоли (я надеюсь, это поможет понять, как это работает):

 irb(main):008:0> a =  [1,2,3,4]
=> [1, 2, 3, 4]
irb(main):009:0> b = [3,4,5,6]
=> [3, 4, 5, 6]
irb(main):010:0> a amp; b
=> [3, 4]
  

Комментарии:

1. я получаю неправильное количество аргументов (1 для 0) с этой ошибкой.