Sinatraを使って簡単なJSONを呼び出したりDBに登録するAPIを作成中です。
マイグレーション等を終わらせ、アプリを立ち上げてブラウザで表示を確認しようとしたところ、表題のエラーが発生しました。
##エラー発生箇所
下記app.rb
のIdea.all.to_json
【app.rb】
require 'sinatra' require './sinatra/activerecord' require 'sinatra/reloader' require 'json' require './models/category.rb' require './models/idea.rb' class Category < ActiveRecord::Base validates :name, presence: true end class Idea < ActiveRecord::Base validates :category_id, presence: true validates :body, presence: true end get '/' do Idea.all.to_json end
##関連ファイル
【category.rb】
require './db/database.rb' class Category < ActiveRecord::Base validates :name, presence: true end
【create_categories】(マイグレーションファイル)
class CreateCategories < ActiveRecord::Migration[6.1] def change create_table :categories do |t| t.string :name, null: false t.timestamps end end end
【idea.rb】
require './db/database.rb' class Idea < ActiveRecord::Base validates :category_id, presence: true validates :body, presence: true end
【create_ideas】(マイグレーションファイル)
class CreateIdeas < ActiveRecord::Migration[6.1] def change create_table :ideas do |t| t.references :category, foreign_key: true, null: false t.text :body, null: false t.timestamps end end end
【database.rb】
ActiveRecord::Base.establish_connection( adapter: 'sqlite3', database: 'db/development' ) class Sensor < ActiveRecord::Base; end
テーブルがないというエラーなのでターミナル上でSQLiteのDBに接続し確認しましたが、ターミナル上ではテーブル、レコード共に存在していることが確認できました。
% sqlite3 db/development.sqlite3 SQLite version 3.28.0 2019-04-15 14:49:49 Enter ".help" for usage hints. sqlite> .table ar_internal_metadata ideas categories schema_migrations sqlite> select * from categories; 1|Sports|2021-04-10 12:41:12.027917|2021-04-10 12:41:12.027917 2|Study|2021-04-10 12:41:12.031770|2021-04-10 12:41:12.031770 sqlite> select * from ideas; 1|1|badminton|2021-04-10 12:41:12.042066|2021-04-10 12:41:12.042066 2|2|Learn Ruby|2021-04-10 12:41:12.045207|2021-04-10 12:41:12.045207
なぜ表題のようなエラーが発生してしまうのか検討もついていない状態です。
回答のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー