Home » ruby » モデル作成時にエラーになった時の対処法 ruby on rails

モデル作成時にエラーになった時の対処法 ruby on rails

環境

ruby 2.4.1
ruby on rails 5.1.3
CentOS 7.3
rails アプリの名前を board として作成します。
rails new board

モデルの名前を Board として作成しようとすると下記のようなエラーになります。

$ rails g model Board
Running via Spring preloader in process 17616
      invoke  active_record
The name 'Board' is either already used in your application or reserved by Ruby on Rails.
 Please choose an alternative and run this generator again.

エラー文を翻訳すると下記のようになります

active_record名前 ‘Board’は、アプリケーションですでに使用されているか、Ruby on Railsによって予約されています。代替案を選択して、この発電機をもう一度実行してください。

調べた結果、railsアプリ名とモデル名が同じだと作成できないということがわかりました。
試しに別名でやってみることにします。

$ rails g model PostRunning via Spring preloader in process 17882
      invoke  active_record
      create    db/migrate/20170824013542_create_posts.rb
      create    app/models/post.rb
      invoke    test_unit
      create      test/models/post_test.rb
      create      test/fixtures/posts.yml

モデルの作成に成功しました。
最初は railsアプリ名とモデル名がかぶってはいけないことを知らなかったので、はまってしまいました汗。

モデル作成 参考資料

オプション

オプション 説明 デフォルト
–skip-namespace 名前空間をスキップする
–old-style-hash 古いハッシュの形式を使う
-o, -orm=名前 使用するO/Rマッパーを指定 active_record
–migration マイグレーションファイルを生成するか true
–timestamps true
–parent=名前
–indexes true
-t, –test-frameword=名前 使用するテストフレームワークを指定 test_unit
–fixtures フィクスチャを生成するか true
-r, –fixture-replacement=名前 フィクスチャを変更する
-f, –force ファイルが存在する場合に上書きする
-q, –quiet 進捗状況を表示しない
-p, –pretend ドライラン
-s, –skip 既に存在するファイルについてはスキップ
-h, –help ヘルプを表示

カラムの型

データ型 説明
string 文字列
text 長い文字列
integer 整数
float 浮動小数
decimal 精度の高い小数
datetime 日時
timestamp より細かい日時
time 時間
date 日付
binary バイナリデータ
boolean Boolean型

引用元 http://railsdoc.com/rails#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E7%94%9F%E6%88%90(rails%20generate%20model)

参考文献


, ,

コメントを残す

%d人のブロガーが「いいね」をつけました。