Try trying changing params[:entry] to params[:entry][:category_id].
Just to note, it's probably best to not use form_for in this instance as you are not dealing directly with a model. I would rework this to something like this:
<% form_tag :action => 'show_by_cat' do %> <select name="category_id"> <%= options_from_collection_for_select(@all_cats, :id, :name)%> </select> <%= submit_tag 'Go' %> <% end %>
Then in your controller: category_id = params[:category_id]
Steve