rails 複数のデータベースを接続時にアクティブレコードのselect_allを使いたい

前提

ここに質問の内容を詳しく書いてください。

アクティブレコードのselect_allを使って、メインのではないサブのデータベースでsql文を使いたい。

railsで作られたアプリがあり、データベースを二つ接続しています。
データベース1 main(railsのデータベース)
データベース2 sub(laravelで作ったデータベース)

複数接続の方法を実装して、コンソールで確認し、どちらのデータベースからもデータが取れることを確認しました。
例:データベース1 Shop.find(1) ->データがとれました!
例:データベース2 User.find(1) ->データがとれました!

mainのデータベース

User(テーブル)
USER_ID(primary key)
USER_NAME

subのデータベース
Blog(テーブル)
BLOG_ID(primary key)
BLOG_NAME
BLOG_USER_ID

両方のデータベースと接続できましたが、
sqlを実行しようとするとうまくいきません。

ActiveRecord::Base.connection.select_all('select * from blogs')
を行うとエラーとなり
main.blogsはありませんとなっていまいます。

subの方につなぐための記述を探しましたが、みつからないため質問させていただきたいです。

実現したいこと

 subのデータベースのデータを
ActiveRecord::Base.connection.select_all(sql)でとりだしたい。

試したこと

ActiveRecord::Base.connected_to(database: sub) do
ActiveRecord::Base.connection.select_all(sql)
end

をためしましたが、
ダメで、mainのデータベースを見にっているというエラーになりました。

補足情報(FW/ツールのバージョンなど)

rails 6.1.6を使用しています。

コメントを投稿

0 コメント