質問: @items_tmp .first.class.where(id: arr.map(&:id)).page(params[:page]).per(5).order(created_at: "DESC") render "xxxxx/show" end # show.html.erb <%= render 'items' %> <%= link_to_next_page @items, 'もっと見る', remote: true, id: 'more_link' %> # _items.html.erb <% @items.each do |item| %> <% item.id %> <% item.name %> ・ ・ ・ <% end %> # show.js.erb $('#items').append("<%= escape_javascript(render 'items', object: @items) %>"); $("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@items, 'もっと見る', remote: true, id: 'more_link')) %>"); <%# binding.pry %> ```
回答: 私でしたら、 1. 10件すべて取得する 2. view側で6件目以降はCSSで非表示にする 3. CSS or JavaScriptで「もっと見る」を押したら、6件目以降を表示する で実装しますかね ■追記 「もっと見る」のAjaxの実装は済んでいましたね。見落としていました。 現状だとAjaxで取得してもrenderが実行されてしまっているので新しい5件のみ表示されるようになっています。 Ajaxの時はrenderしないようにする必要があります。 format.jsなどを使ってAjaxの時はjsファイルを実行するように変更してみてください。