Как преобразовать массив результатов ActiveRecord в обычный массив? - PullRequest
22 голосов
/ 22 ноября 2010

Как мне преобразовать набор результатов @ recipe.components.find ([#, # attribute_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 %>

Спасибо!

Ответы [ 4 ]

31 голосов
/ 22 ноября 2010

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

@result.map {|i| i.ingredient_id }
24 голосов
/ 18 ноября 2011

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

@result.map(&:ingredient_id)

Экономия времени, чистота и простота интерпретации.

6 голосов
/ 03 марта 2014

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

@result.pluck(:ingredient_id)
6 голосов
/ 23 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...