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

広告

 - プログラミング

  関連記事

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

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

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

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

CSVをMySQLへ取り込み&改行コードについて

■背景 今回、Mac端末を使って、csvファイルからMySqlのテーブルにデータ …

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

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

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

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

iOS Dev Centerへのアクセス

iPhoneアプリをリリースするには、 1、Certificatesの設定 2、 …

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

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

AngularJSでの構成を考えてみる

AngularJS使って、基本的な動かし方は、山田の本でわかったけど、 実際にw …

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

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

Error loading apple credentials from file

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