2017-06-08 1 views
0

私はユーザーが自分の製品(イモベル)を作成できるプロダクト(イモベル)コントローラを持っています。私は認証のためにdeviseを使用しており、CRUD(作成、更新、削除)ログインが必要です。したがって、クライアントが製品を見ることができ、ユーザーは必要ないため、私はウェルカムコントローラを作成しました。そこで、それはルートです。
製品のインデックスでは、私はRansackを使用してテーブルの研究を行い、うまく動作します。 (それについては非常に満足しています)。
私は同じことをしようとしますが、私が検索を提出すると、ページはimovels#indexにリダイレクトされます。ウェルカムコントローラで検索

コントローラー:

class WelcomeController < ApplicationController 
    def index 
    @q = Imovel.ransack(params[:q]) 
    @imovel = @q.result(distinct: true) 
    end 
end 

ビュー:インデックスに重要となる可能性が

<div class="container text-center"> 
    <%= search_form_for @q do |f| %> 
     # Search if the name field contains... 
     <%= f.label :descricao_cont %> 
     <%= f.search_field :descricao_cont %> 
     <%= f.submit "Pesquisar", class: "btn btn-primary" %> 
    <% end %> 
</div> 

もう一つ(imovels#インデックス)TRとの情報で用がフィルタリングされています。

Imovelsインデックス

<tbody> 
     <% @imovels.each do |imovel| %> 
     <tr> 
      <td><%= imovel.id %></td> 
      <td><%= imovel.descricao %></td> 
<% end %> 

そして、私は、検索を必要と歓迎コントローラでは、私が使用したのdiv:

ようこそインデックス

<% @imovels.each do |imovel| %> 
    <div class="card"> 
    <div class="containerImovel"> 
     <h4><b><%= imovel.descricao %></b></h4> 
     <p><%= imovel.cidade %> - <%= imovel.bairro.nome %> </p> 
</div> 
    </div> 
<% end %> 

は、どのように私は歓迎コントローラのdivタグの検索を行うことができますか? Ransackはそれのためのよりよいオプションですか? has_many:through associationで検索することは可能ですか?

+1

インデックスアクションの検索とレンダリングのための別のルートを作成する必要があります。 –

+0

あなたは正しいです、コメントしていただきありがとうございます。私はあなたが私を助けようとすることを本当に感謝します – SuBzer0

答えて

1

あなたのroutes.rbを

resources :imovel do 
    collection do 
    match 'search' => 'welcome#search', via: [:get, :post], as: :search 
    end 
end 

をして、それのパスを追加し、そのように

<%= search_form_for @q, url: search_imovel_path, html: { method: :post } do |f| %> 
のような検索フォームをWelcomeController

def search 
    index 
    render :index 
end 

に新しいコントローラのアクションを追加し、その後変更

名前と変数を再確認してください。私はあなたのアプリをよく知っていません。

+0

パーフェクトハンス!それは私が望むのと同じように機能します。答えの時間については申し訳ありません。成功! – SuBzer0