kaminari + mongoid でwhereを使う方法
2013-11-20 2017-09-13
個人的に結構詰まったところ。
mongoidは日本語の記事が少ないので、もっと多くの人が書いてくれるとうれしい。
最近ruby使ってませんが。
kaminari + mongoid where実装のソース
ruby
1 2 |
@queries = Query.page(params[:page]) @queries = @queries.where(name: => /.*#{name}.*/) unless name.blank? |
これでページング処理とフィルタリングの共存ができる。
「@queries.where(name: => /.*#{name}.*/)」の部分はmongoidでlikeっぽい検索をする時の書き方。これも結構詰まった。
viewにはいつも通りのkaminariスタイル。
html + ruby
1 2 3 4 5 6 7 8 9 10 11 |
<table> <thead> <th>Name</th> </thead> <tbody> <% @queries.each do |q| %> <tr><td><%= q.name %></td></tr> <% end %> </tbody> </table> <%= paginate @queries %> |