質問: 現在Railsでgenerateコマンドで作成したモデルを一覧表示し、kaminariでページング表示しております。 そこで、Mysqlに接続しSelectして取得したデータもkaminariでページングできるようにしたいのですが、この場合取得したデータをkaminariで扱えるようなモデルに直して表示するのが一般的なのでしょうか。 それとも別の方法でページングする必要があるのでしょうか。 ご教示のほどお願いいたします。
回答: > > この場合取得したデータをkaminariで扱えるようなモデルに直して表示するのが一般的なのでしょうか > > > railsを使うのであれば、これが一般的です。 どうしても、モデルを使いたくないのであれば、LIMIT、OFFSETをSELECT文に追加すればできます。 前回も回答しましたが、Railsのモデルにするべきだしそのほうが簡単です。 モデルは個別に接続先のDBを変更できるので、MySQLに対応するモデルにだけ接続先を設定するだけで済みます。 追記 モデルの接続先を変更する例を示します。 ここでは、外部のデータベース(MySQL)にitemsというテーブルが存在するという想定で説明します。 ### database.ymlにMySQLの接続情報を好きな名前で追加する ここではotherdb_devという名前にする。 * config/database.yml ``` # 通常の接続設定 development: ... test: ... production: ... # mysqlの接続設定をここに書く otherdb_dev: adapter: mysql2 database: ... username: ... password: ... host: ... port: ... ``` モデルを手動で作成して接続先を設定する * app/models/item.rb ``` class Item < ApplicationRecord establish_connection :otherdb_dev end ``` 以上で、rails consoleでItem.firstとかItem.countなど普通の操作が出来るようになります。 その接続先は、database.ymlのother_devの内容です。