51ch @Nippon

こちらは高橋晃一の自己マンサイトです。万が一興味があればどうぞ。メッセージはお気軽に。

*

railsでオブジェクトをnewできないエラー

   

広告


<事象>
rails consoleから単純にnewしたら以下のエラーが表示される。

なんでnewが、undefindメソッドなんだろうと悩む。

skillsテーブルの定義内容は以下です。
mysql> show columns from skills;
+————-+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————-+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| class | varchar(255) | YES | | NULL | |
| change_flg | tinyint(1) | NO | | 0 | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+————-+————–+——+—–+———+—————-+
8 rows in set (0.01 sec)

#原因
カラム名が予約語
少し慣れている人であれば上のテーブル定義からすぐにわかると思いますが、
classがrubyの予約語です。
予約後をカラム名として利用すると発生するうようです。

#対応
テーブル定義を変更しましょう。
・マイグレーションファイルを作成

・マイグレーションファイルの中身を編集

・migrateの実行
$ bundle exec rake db:migrate

rails console上で再度newしてみると

ちゃんとnewできました!初心者は、こんなのでも時間をロスしてしまいます。

広告

<参考>
[StackOverflow](http://stackoverflow.com/questions/32761577/rails-dbseed-error-undefined-method-finder-needs-type-condition-for-nilnil)
[予約後一覧](http://www.trail4you.com/TechNote/Ruby/Rails_keyword_list.html)

supersoftwareでエンジニア募集中

広告

 - プログラミング

  関連記事

URLの埋め込み&日本語検索(エンコード)

単純に、アプリ内にURLを埋め込んで、ボタンを押したらリンク先に飛べるようにした …

swiftは大文字、小文字の区別が大事

  エラーがでている時に確認すべきポイントとして、大文字小文 …

文字列の先頭、末尾を条件に使う

スポンサードリンク 「hasPrefix」を使うと文頭に含まれているかどうかをチ …

no image
Double型結果誤差

Double型では大きな数値や少数の計算をすると計算結果に誤差が生じます。 これ …

iPhoneアプリリリース時の注意

iPhoneアプリリリース時に私が引っかかったのは、Archiveを取る時です。 …

Stinger smart.cssが表示されない 犯人はイニシャルP.Jだ!

51chはWordPressで、もはや猫も杓子ものStinger3をテーマに使わ …

no image
無料配布のFacebookやTwitterのソーシャルロゴアイコン素材まとめ23選|LIG INC.

アプリにソーシャルボタンを設置するときに、デザインがなく困っていたところ、 こち …

no image
アニメーション設定時の注意点

アニメーションを指定する時のUIViewの設定は、 UIView.animate …

swift UITableViewControrlarかUIViewControlarか

普通はUIViewController, UITableViewDataSour …

AngularJS×BootstrapでModal作成 Angularバージョン注意!

<Situation> よくwebサイトで見かけるモーダルを UiBootstr …