2017-10-09 12 views
0

J'essaie de créer un formulaire de recherche simple qui redirige les utilisateurs vers une page de résultats distincte.Routage d'un formulaire de recherche simple

Mon point de vue pour index.html.erb est ci-dessous:

<%= simple_form_for results_path, method: :get, html: { class: "form-inline justify-content-center" } do |f| %> 

    <%= f.select :what, options_for_select([['Happy Hours Anywhere','Anywhere'],['After Work Drinks','After Work Drinks'],['Somewhere to Relax with Friends', 'Relaxing with Friends'], ['A Club Night','Club Night'], ['Somewhere for Date Night','Date Night'], ['A Place to Watch Sports', 'Watching Sports']]),{} ,:class => "form-control select-box font-lightweight" %> 

    <%= f.select :datetime, options_for_select(dates_for_search_select.each_with_index.map{|d, i| [d[1],d[0]]}), {}, :class => "form-control select-box font-lightweight" %> 

    <%= f.select :time, options_for_select(times_for_search_select.each_with_index.map{|d, i| [d[1],d[0]]}), {}, :class => "form-control select-box font-lightweight" %> 

    <%= f.button :submit, 'Discover', :class => 'btn btn-block btn-danger btn-embossed top-margin ' %> 
<%end%> 

J'ai créé ma route 'résultats', qui peut être vu ci-dessous:

Rails.application.routes.draw do 
    resources :offers 
    resources :venues 
    get 'home/results' => 'home#results', :as => :results 
    get 'home/index' 
    devise_for :users 
    root to: "home#index"  
end 

Cependant, lorsque je produis la HTML le formulaire résultant de l'action conserve le routage vers la page d'index:

<form class="simple_form form-inline justify-content-center" novalidate="novalidate" 
action="/home/index" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓"> 

</form> 

Que manque-t-il?

+0

essayer avec cette obtenir « des résultats » à: « maison # résultats » –

Répondre

0

simple_form_for demande un objet en tant que premier argument (instance de classe ou symbole). alors vous pouvez ajouter url: articles_path, comme vous le feriez pour un form_for normal. Voir simple form source code

Vous avez donc besoin d'avoir une ligne quelque chose comme ceci:

<%= simple_form_for :results, url: results_path, method: :get, html: { class: "form-inline justify-content-center" } do |f| %>