У меня есть форма, в которой есть вложенное поле (habtm и accepts_nested_attributes_for
). Эта форма содержит поле «ключевые слова», которое автоматически заполняет ключевые слова, которые поступают из таблицы postgresql.рельсы: как я могу использовать find_each с картой?
Все, что хорошо работает. Это значение находится в параметрах:
"acte"=>{"biblio_id"=>"1", "keywords"=>{"keywords"=>"judge, ordeal, "}
Что мне теперь нужно сделать, это взять эти ключевые слова и получить их ключевые слова из ключевых слов таблицы. Эти идентификаторы должны быть добавлены в таблицу соединений.
Я делаю это:
q = params[:acte][:keywords].fetch(:keywords).split(",")
a = q.map {|e| Keyword.find_by keyword: e }
В соответствии с гидами, find_by
возвращает только первое поле соответствия. Я думаю, мне нужно будет использовать find_each
, но я не уверен в этом, и я не могу донести его до слова. Я попытался это:
q = params[:acte][:motclefs].fetch(:motclefs).split(",")
a = Array.new
Motclef.where(motcle: q).find_each do |mot|
a << mot.id
end
Это также находит только первый результат, как: [251]
.
Что я ищу, чтобы получить что-то вроде [1453, 252, 654]
спасибо!