何をしたいか
rails初心者です。現在ransackを使って検索機能を実装しています。
ransack自体で検索機能をつけるのはできたのですが、これをチュートリアル通りではなく、検索フォームと検索結果を分けたいです。
コード
コードはgithubやrailscastsに書いてある通りにかきました。
ruby
1def index 2 @q = Person.ransack(params[:q]) 3 @people = @q.result(distinct: true) 4end
ruby
1<%= search_form_for @q url: search_people_path, html: { method: :post }do |f| %> 2 3 # Search if the name field contains... 4 <%= f.label :name_cont %> 5 <%= f.search_field :name_cont %> 6 7 # Search if an associated articles.title starts with... 8 <%= f.label :articles_title_start %> 9 <%= f.search_field :articles_title_start %> 10 11 # Attributes may be chained. Search multiple attributes for one value... 12 <%= f.label :name_or_description_or_email_or_articles_title_cont %> 13 <%= f.search_field :name_or_description_or_email_or_articles_title_cont %> 14 15 <%= f.submit %> 16<% end %>
ruby
1resources :people do 2 collection do 3 match 'search' => 'people#search', via: [:get, :post], as: :search 4 end 5end
ruby
1def search 2 index 3 render :index 4end
上記通りに書いたら検索機能を追加できました。
検索結果を分けたい
上記だと一覧画面に検索フォームが表示され、同じ画面に検索結果が表示されます。
しかし、検索フォームが開く → 検索ボタンを押す → 検索結果一覧 という流れで実装したいです。
初心者なのでまだ理解できていない部分が多々ありますが、優しい人ご教授お願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。