• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyのactive_recordについて)

rubyのactive_recordについて

このQ&Aのポイント
  • rubyのactive_recordを使用してSQLite3のデータベースにアクセスし、最新のデータを取得するプログラムの作成方法を教えてください。
  • アクティブレコードを使用してRubyでSQLite3データベースにアクセスする方法を教えてください。
  • 最新のデータをアクセスするRubyのプログラムを作成していますがうまくいきません。どうすれば正しくデータを取得できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

どのようなエラーがでているのでしょうか? またデバッガは使っていますか? それを見れば解決できるはずですが。 さて、まずこのファイルをどこに置いていますか? database.ymlと指定されていますので、configフォルダの中でしょうか。 ところが、database.ymlにはdb/development.sqlite3と書かれているはずですので、探し出すことができません。 このファイルをconfigフォルダの外に出して、'database.yml'を'config/database.yml'に変更するとともかくデータベースは読めるようになります。 次に、bookinfo = Bookinfo.order("updated_at DESC").firstで読み込んだときには、配列にはなっていません。 info = Bookinfo.order("updated_at DESC").first puts info.id puts info.author puts info.title puts info.page puts info.date_available としてみてください。

zerozero5320
質問者

補足

ご回答ありがとうございます。 `initialize': SQLite3::SQLException: no such column: updated_at: SELECT "bookinfos".* FROM "bookinfos" ORDER BY updated_at DESC LIMIT 1 (ActiveRecord::StatementInvalid) デバッグしたとき、上のようなエラーがでるのですが、何が原因なのでしょうか。よろしくお願いします。

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

どの行でエラーが出ているのか確認してください。大事な情報です。 多分、Bookinfo.order("updated_at DESC").first だと思うのですが、 ところで、データベースにデータは入っているのでしょうか? updated_atの項目が自体が無いか、もしかしたらデータが全く入っていないのが原因かも知れません。 SQLite3のデータは、コマンドで確認するか、 FireFoxの拡張機能のSQLIte Managerなどで確認や操作ができます。