前提・実現したいこと
mysqlのデータが取り出せない。
データは入っているのに。
mysql> select count(*) from products +----------+ | count(*) | +----------+ | 285 | +----------+ 1 row in set (0.00 sec)
このようにデータは入っている。
が、下のコードのように取り出そうとするとデータが空になっている。
48] [myapp][local] pry(main)> Product.all => Product Load [○○][writable] (0.4ms) SELECT `products`.* FROM `products` []
何故なのかわかりません。
直接実行したものと同じSQLではどうでしょうか。
何故、問題が起きているのかがわかりまして、
データベース1 → mysql> select count(*) from productsで データが入っている
データベース2 → mysql> select count(*) from products で データが入っていない
mysqlでそれぞれ調べると上記の結果がわかりまして、
rails c で Product.all をすると、データベース2 を参照しているが為にこのような問題が起こっているのかもしれません。
rails c で データベース1 を参照して欲しいのですが、どのようにすればよろしいでしょうか。
DB接続部分の設定を確認してください。そこしかないと思います(Rubyに明るいわけではないので、設定部分を追記すると回答得られやすくなると思います)
ご回答ありがとうございました!
database.yml の
local: databaseの接続先を、接続したい場所に変更して、
db:migrateをしたら、
データベースの変更ができました!
データもしっかりと入っています。
ありがとうございます。
なるほど。やはり接続先の問題ですね。
問題切り分けのやり方は色々あるので、一個ずつ潰していくと良いです。
熟練者でも一発でわかることってないです。特にQAサイトは他人の問題なので余計に。質問内容は充実していればしているほど良いです。今後は適宜更新してくださいね。
わかりました!ありがとうございます!
回答1件
あなたの回答
tips
プレビュー