2016-05-04 8 views
0

私は、リンクしたいブール属性がtrueのすべてのレコードにフィルタリングするページを持っています。Rails 4 FilterブールTrue True

<div class="filter btn btn-default btn-directory active"><%= link_to "Accepting", people_path(:filter_by => :search == true), {:method => :get} %></div> 

これはエラーをなくしませんが、結果もフェッチしません。コントローラから

def index 
     @people = Person.all 

     if params[:filter_by] 
      @people = Person.where(:position => params[:filter_by]) 
     else 
      @people = Person.all 
     end 
    end 
+0

この構文 'people_path(:filter_by =>:search == true)'は、リクエストフィルタに '?filer_by = false'を追加するだけです。あなたのビュー/コントローラコードとあなたが何をしようとしているかについてもっと詳しく説明できますか?私はいくつかのパラメータでフィルタリングされたすべての人のリストにリンクしようとしていると思いますか? –

+0

私はビューのコントローラのテキストを追加しました。私は今、コントローラのfilter_byテキストを忘れていることがわかります。 'search'属性に' elsif'を指定してfiler_by IF文を設定できますか? はい、正しいです、コントローラのインデックスページをフィルタリングして、 'search == true'の人だけを表示しようとしています – lostrennie

答えて

0

はあなたがすべての値person.search == trueを取得したいとします

次のようにあなたのpeople_pathでのparamを送る:

link_to "Accepting", people_path(filter_by: true) 

その後、PeopleController#indexに:

def index 
    Person.where("search = ?", params[:filter_by] == "true") 
end 
+0

これは意味がありますが、' def index'のIF文では何も返さない。これは私がそれを落とした方法です、私は何かを逃していますか? '場合のparams [:filter_by] \t \t @people = Person.where(:ポジション=> paramsは[:filter_by]) \t \t \t @people = Person.where( "?検索="、paramsはELSIF [ :filter_by] ==) "真" \t \t他 \t \t @people = Person.all \t \t end' 'のparams [の値は何 – lostrennie

+0

:filter_by]'あなたの例になるはず? –

+0

これは、各胞子(スタッフ、学生、教員)の位置によってインデックスをフィルタリングしていますが、この新しいフィルタは、教員が新しい学生を受け入れているところでフィルタリングすることになっています。 – lostrennie

関連する問題