実現したいこと
gem kaminariを活用して、表示するpostの数を限定したい。
また、一番下に出てくる「もっと見るボタン」を押すと要素が増えていく設定行いたいです。
こちらのサイトを参考にしました。
https://qiita.com/rainbow___0/items/06b231273b3ae56761c8
※諸々進みましたので、一番最初の質問から修正した最新状況に書き加えました。
エラー
なし
Postが3つ表示されますが、Moreボタンを押しても、表示数は増えません。
コード
gem 'kaminari'
app/views/items/index.html.erb
<div id="items">
<%= render 'items' %>
</div>
<%= link_to_next_page @items, 'more', remote: true, id: 'more_link' %>
app/views/items/_items.html.erb
<% @items.each do |item| %>
<div><%= item.name %></div>
<% end %>
app/views/items/index.js.erb
$('#items').append("<%= escape_javascript(render 'items', object: @items) %>")
$("#more_link").replaceWith("<%= escape_javascript(
link_to_next_page(@items, 'more', remote: true, id: 'more_link')
) %>");
app/controller/items_controller.rb
def index
@items = Item.all.page(params[:page]).order(created_at: :desc)
end
paginates_per 3
Moreボタンを押した直後のログ
Started GET "/posts/index?page=2" for 127.0.0.1 at 2019-12-03 23:28:01 +0900
Processing by PostsController#index as JS
Parameters: {"page"=>"2"}
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]]
↳ app/controllers/application_controller.rb:6
Rendering posts/index.html.erb within layouts/application
Post Load (0.4ms) SELECT "posts".* FROM "posts" ORDER BY "posts"."created_at" DESC LIMIT ? OFFSET ? [["LIMIT", 3], ["OFFSET", 3]]
↳ app/views/posts/_items.html.erb:1
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/post.rb:16
Rendered posts/_items.html.erb (14.6ms)
Rendered posts/index.html.erb within layouts/application (37.3ms)
Completed 200 OK in 129ms (Views: 100.7ms | ActiveRecord: 1.3ms)
お分かりの方宜しくお願い致します。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
まだ回答がついていません
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.99%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正の依頼
yut148
2019/12/03 20:20
bundle installは実行されましたでしょうか?
tomtom1
2019/12/03 22:47
はい!済みです!