質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

5092閲覧

paginateによるページネーションに条件を付けたいのですがわかりません。

monk11

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2014/09/15 06:47

現在下記のコードでユーザーの一覧表示のページネーションを実装しています。

@users = User.paginate(page: params[:page])

ここで、Userモデルのadmin属性がtrueの時のみ、そのユーザーを表示したいのですが方法がわかりません。
@user = User.find_by(admin: true) @users = @user.paginate(page: params[:page])
上のように記述して実行しても、下のエラーが出てしまいます。
![イメージ説明]WIDTH:600

プログラミング初心者のためかなりおかしな質問をしているかもしれませんが、どうかお力添え願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

will_paginate を使っているのでしょうか?
私は will_paginate でなく kaminari を使っているので、的はずれな回答になっているかもしれません。

https://github.com/mislav/will_paginate より引用。

paginate in Active Record now returns a Relation

Post.where(:published => true).paginate(:page => params[:page]).order('id DESC')

the new, shorter page() method

Post.page(params[:page]).order('created_at DESC')

find_by でなく、 where をつかってみては?

こんな例もみつけました。
http://stackoverflow.com/questions/20454448/ruby-on-rails-search-order-limit-then-paginate

lang

1 def self.search(title, company, location_id, page) 2 if location_id 3 wages = Wage.where('title LIKE ? AND company LIKE ? AND location_id = ?', "%#{title}%", "%#{company}%", location_id).order('total DESC').limit(200).paginate(:page => page) 4 else 5 wages = Wage.where('title LIKE ? AND company LIKE ?', "%#{title}%", "%#{company}%").order('total DESC').limit(200).paginate(:page => page) 6 end 7 return wages 8 end

投稿2014/09/15 15:29

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

monk11

2014/09/15 19:01

find_byからwhereに変更したところ、思った通りに動作しました!本当に有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問