Подтвердить что ты не робот

Как преобразовать массив результатов ActiveRecord в обычный массив?

Как мне преобразовать результирующий набор из @recipe.components.find([# < Component componentient_id: 1 > , # <Component> componentent_id: 2 > ]) в массив, такой как [1,2]

<% @ingredients.each do |ingredient| %>
  <div class="field">
  <%= check_box_tag 'ingredients[]', ingredient.id, @recipe.components.find(:all, :select => "ingredient_id").include?(ingredient.id) %><%= ingredient.name %>
  </div>
<% end %>

Спасибо!

4b9b3361

Ответ 1

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

@result.map {|i| i.ingredient_id }

Ответ 2

Если вы используете последнюю версию ruby, есть новый способ сделать это:

@result.map(&:ingredient_id)

Экономия времени, чистая и удобная для понимания.

Ответ 3

Или более лаконично @result.map! &:ingredient_id

Ответ 4

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

@result.pluck(:ingredient_id)