comment obtenir la valeur sélectionnée à l'aide select_tag avec options_from_collection_for_select et de le transmettre au contrôleur

J'ai construit un formulaire de recherche comme ceci:

<%= form_tag({ controller: 'questions', action: 'search_topic' }, method: 'get') do %>
  <%= select_tag 'search_topic', options_from_collection_for_select(current_user.get_topics, :id, :name) %>
  <%= submit_tag "Search", name: nil, class: 'btn' %>
<% end %> 

Je recherche à toutes les questions d'un sujet sélectionné à partir de la boîte de sélection, j'ai utilisé des taches solaires à l'aide à la recherche, alors maintenant, comment puis-je passer de la valeur de sélectionner à partir de sélectionner la zone de contrôleur pour la recherche, j'ai utilisé le code ci-dessous pour passer un params [:]:

<%= select_tag 'search_topic', options_from_collection_for_select(current_user.get_topics, :id, :name), params[:search] %>

mais il a erreur:

undefined method `[]' for nil:NilClass

c'est mon contrôleur:

def search_topic
  @search = Question.search do
    with(:topic_id, params[:search])
    paginate page: 1, per_page: 10
  end

  @questions = @search.results
  render 'index'
end

alors, comment puis-je passer de la valeur sélectionné à partir de la boîte de sélection sur le formulaire de contrôleur pour la recherche?

OriginalL'auteur Thanh | 2012-11-02