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でエンジニア募集中

広告

 - プログラミング

  関連記事

携帯からのWordPressが便利でいいーね

 私はiPhoneからWordPressの、アプリ経由で投稿してますが、PC …

ファビコンの設定

Stinger5のテーマを使わせてもらって、ファビコンがディフォルトのままだった …

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

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

Swift1.1→1.2のキャスト時の注意 AS

2015年4月にiOS 8.3が発表され,iPhoneアプリ開発ツールであるXc …

Error loading apple credentials from file

プッシュ通知の機能を実装する上で、自前でサーバーを準備するのは大変なので、AWS …

バックグラウンドで音楽を再生したい

こちらを知りたいと思う時は、きっと既に音楽は流せれるようになったけど、 アプリを …

no image
ボタンへのアクションの設定方法

ボタンの設定してアクションをつけ加える時は、 button.addTarget( …

EXC_BAD_INSTRUCTIONの発生回避

このエラーは、メモリが関係している記事がいくつか見つかった。 http://to …

エラーじゃないのにコンパイルエラーになってしまう

swiftは、基本的に自動コンパイルされて、コンパイルエラーが出る仕組みになって …

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

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