Ответ 1
вы можете использовать
@result.map {|i| i.ingredient_id }
Как мне преобразовать результирующий набор из @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 %>
Спасибо!
вы можете использовать
@result.map {|i| i.ingredient_id }
Если вы используете последнюю версию ruby, есть новый способ сделать это:
@result.map(&:ingredient_id)
Экономия времени, чистая и удобная для понимания.
Или более лаконично @result.map! &:ingredient_id
Вы также можете использовать:
@result.pluck(:ingredient_id)