Как вывести все подкатегории при выборе категории?
Как вариант, при выборе первого collection_select отправлять ajax запрос на сервер с параметром category_id, который вернет, например, json всех подкатегорий. А уже потом их вставлять с помощью JS в форму.
Если кому-то понадобится:
view:
<%= f.collection_select :category_id, Category.all, :id, :title, {prompt: 'Выберите категория'} %>
<%= f.collection_select :subcategory_id, Subcategory.all, :id, :title, {prompt: 'Выберите подкатегорию'} %>
update_sub_categories.js (в одной папке со вьюхой):
$("#booking_subcategory_id").empty().append("<%= escape_javascript(render(:partial => 'subcategory', :collection => @cats, :as => :cat)) %>");
routes.rb:
get 'update_sub_categories' => 'bookings#update_sub_categories'
get 'bookings/update_sub_categories' => 'bookings#update_sub_categories'
контроллер:
def update_sub_categories
    @cats = Subcategory.where(category_id: params[:category_id]).all
    respond_with(@cats)
  end
_subcategory.html.erb:
<%= cat.title %>