options_for_select
принимает второй параметр, который идентифицирует выбранное значение.
try
<%= f.collection_select :category_id, Item::CATEGORIES, :downcase, :titleize %>
Предполагается, что ваш Item::CATEGORIES
дает массив строк категорий.
для каждой категории в Item::CATEGORIES
, category.downcase
будет использоваться в качестве значения опции, а category.titleize
будет использоваться в качестве текста опции.
т.е..
<option value="<%= cate.downcase %>"><%= cate.titleize %></option>
======
или вы могли бы:
<%= f.select :category, options_for_select(Item::CATEGORIES, @cur_obj.category.id) %>