いつもお世話になります。
現状Railsでgenerateしたモデルをwill_paginateを使用して10ページずつ表示させることには成功している状態です。
RailsでgenerateしたモデルではなくMysqlで作成したデータベースからデータを取り込みwill_paginateを使用してページングしたいと考えているのですが下記のようなエラーが出てしまいます。
undefined method `paginate' for #Mysql::Result:XXXXXXXXXXX
質問なのですが、will_paginateはRailsで作成したモデルにしか対応していないということでしょうか。will_paginateで表示できない場合、Mysqlのデータをページングして表示する場合どのようにすればよいのでしょうか。
ご教示いただければ幸いです。
よろしくお願いいたします。
追記
配列であるMysqlのデータをページングする場合require 'will_paginate/array'を追加すればそのまま動かせるという記事があったので行ってみたのですが
<%= will_paginate @maildbs %>
部分で
undefined method `total_pages' for #Mysql::Result:xxxxxxxxxxxxxxxxx
エラーが出てしまいます。
Ruby
1#user_controller.rb 2 3# Maildbモデルを10ずつ表示 4@maildbs = Maildb.paginate(page: params[:page], per_page: 10) 5↑ これは通常通りできる 6 7#personal.html.erb 8<%= will_paginate @maildbs %> 9 10 11 12 13 14#user_controller.rb 15 16# Mysqlに接続 17client = Mysql.connect('localhost', 'root', 'パスワード', 'データベース名') 18# Maildbモデルを10ずつ表示 19@maildbs = client.query("SELECT * FROM テーブル名").paginate(page: params[:page], per_page: 10) 20↑ このような形だとエラー 21「client.query("SELECT * FROM テーブル名")」でデータ自体はきちんと取れています 22 23#personal.html.erb 24<%= will_paginate @maildbs %> 25 26 27 28
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。