метод `map` для массивов в массиве - PullRequest
0 голосов
/ 27 ноября 2018

Я использую вложенную карту для ассоциации has_many в следующем методе

@trial.treatment_selections
.map { |ts| ts.establishment_methods.map { |em| em.final_establishment.to_f }}
# => [[10.2, 10.1, 10.1], [11.4, 11.4, 10.9]]

Здесь treatment_selections has_many establishment_methods.

Я не уверен, как получить следующий массив:

[10.2, 10.1, 10.1, 11.4, 11.4, 10.9]

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вы также можете использовать метод выравнивания массива

@trial.treatment_selections
      .map { |ts| ts.establishment_methods.map { |em| em.final_establishment.to_f }}
      .flatten
#=> [10.2, 10.1, 10.1, 11.4, 11.4, 10.9]
0 голосов
/ 27 ноября 2018

Попробуйте flat_map :

<%= @trial.treatment_selections.flat_map { |ts| ts.establishment_methods.map { |em| em.final_establishment.to_f }} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...