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

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

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

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

Ruby

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

Ruby on Rails

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

Q&A

1回答

3494閲覧

【gem kaminari】 page_entries_infoでエラーがでます。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/11/25 00:09

編集2018/11/25 02:23

困っていること

kaminariを使用してpage_entries_infoで「○件中○件を表示」を使用したいのですが、NoMethodErrorがでます。

すでに同じページ内にてpaginateを使用できており、新たにpage_entries_infoの追加をする形なので、メッソッドが無いと返されてるのが疑問です。

該当ソースコード

users_controller.rb

def show @user = User.find(params[:id]) @user.id == current_user.id @entries = current_user.entries.order(created_at: 'desc').kaminari_page(params[:page]).per(10) @room = Room.new @entry = Entry.new end

show.html.erb内

<div class="col-md-9"> <h2 class="user-h2">あなたの質問(<%= @user.entries.count %>)</h2> <hr class="user-hr"> <div class="user-scroll"> <% if @user.entries.empty? %> <h3 class="nil-text">あなたへの質問はありません。</h3> <%= page_entries_info @entries %> ←追加したいと思っています <% else %> <% @entries.each do |entries| %> <div class="box26"> <%= page_entries_info @entries %> <span class="box_title">No.<%= entries.room.id%> <small class="box_small"> <%= entries.created_at.strftime('%m月%d日') %>に投稿</small></span> <p><a class="title-text" href="/rooms/<%= entries.room.id %>"><span class="main-span">Q</span>. <%= entries.room.name %></a></p> <% if entries.room.explain.present? %> <span class="box_explain">質問内容:<%= entries.room.explain %></span> <% else %> <span class="box_explain2">質問内容は記載されていません。</span> <% end %> </div> <hr> <% end %>   </div> <% end %> <div class = "exit-btn">  <%= paginate @entries %> ←正常に動作します </div> </div> <% end %> . . .

エラー内容

イメージ説明

まとめ

paginate自体はごく普通にエラーなく使用できています。
page_entries_infoではエラーが起きます。
@user.entries.countが競合してエラーを起こしているのかと思い修正してみましたが、うまくいきませんでした。

質問投稿後に修正してみた点

users_controller.rb

@entries = current_user.entries.order(created_at: 'desc').kaminari_page(params[:page]).per(10)

と設定していたので、
show.html.erb内も

<%= kaminari_page_entries_info @entries %>

としてみましが、うまく動作しませんでした。

現在、以下のようにしています。
config/intializers/kaminari.rb

Kaminari.configure do |config| #config.page_method_name = :per_page_kaminari config.page_method_name = :kaminari_page end

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

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

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

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

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

guest

回答1

0

「質問投稿後に修正してみた点」を全て戻し、以下を修正し見てくれませんか?

修正点

前:@entries = current_user.entries.order(created_at: 'desc').kaminari_page(params[:page]).per(10) 後:@entries = current_user.entries.order(created_at: 'desc').page(params[:page]).per(10)

railsライブラリ紹介-ページングを行う「kaminari」

投稿2018/12/01 14:39

編集2018/12/01 14:40
dobby618

総合スコア302

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問