【本日の学習内容:CSV データインポート機能】
CSVデータインポート機能の実装について学びました。
Rails環境のコンソール
rails c コマンドを実行することで、Rails環境のコンソール(irb)が立ち上がる。
環境で立ち上がるので、モデルクラスのメソッドを実行できるようになる。
モデル名.メソッド名('パス')コマンドで実行
reload!コマンドで、コードの変更内容を読み込んだ上で再度コンソールを立ち上げることができる。
クラスメソッドの定義
def self.メソッド名
end
このようにメソッドを定義すると、new演算子を用いてモデルクラスのオブジェクトを生成する必要がなくなる。
# 通常のメソッドを呼び出す方法
# new演算子でオブジェクト化する必要がある
import_csv = ImportCsv.new
import_csv.import
# クラスメソッドの場合
# new演算子がいらない
ImportCsv.import
今日のエラー
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "users" does not exist)
どういうエラーなのか
usersテーブルがないというエラー。
どんなときに起こるのか
rails g model モデル名 コマンドを実行した後に、
bundle exec rake db:migrate コマンドを実行し忘れているとき。
対処法
マイグレーションファイルを作ったら、
すぐに bundle exec rake db:migrate コマンドを実行し、
内容をデータベースに反映させる。
ActiveModel::UnknownAttributeError (unknown attribute 'address' for User.)
usersテーブルにaddressカラムがないというエラー。
どんなときに起こるのか
usersテーブルにaddressカラムがないとき。(タイプミスでadressと記述してしまっているなど)
対処法
マイグレーションファイルを修正(addressカラムの記述)して、
rails db:migrate:reset コマンドを実行する。