[解決済み】Railsでuser_id:integerとuser:referencesを使用してモデルを生成する。
2022-04-13 11:50:18
質問
他のモデルに属するモデルを生成する方法について混乱しています。私の本では、MicropostとUserを関連付けるためにこの構文を使っています。
rails generate model Micropost user_id:integer
しかし https://guides.rubyonrails.org/active_record_migrations.html#creating-a-standalone-migration には、このようにしろと書いてある。
rails generate model Micropost user:references
この2つで生成されるmigrationは異なります。また、前者については、railsはどのようにして
user_id
を参照する外部キーです。
user
? ありがとうございます。
解決方法は?
マイグレーションを実行すると、どちらも同じカラムが生成されます。 railsコンソールで、そのことを確認することができます。
:001 > Micropost
=> Micropost(id: integer, user_id: integer, created_at: datetime, updated_at: datetime)
2番目のコマンドは
belongs_to :user
のリレーションシップを作成します。 このリレーションが指定された場合、ActiveRecordは外部キーが
user_id
という名前のモデルを使用します。
User
を使用して、特定のユーザーをインスタンス化します。
2番目のコマンドはまた、新しい
user_id
カラムになります。
関連
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Ruby on Railsはモデルのfield:typeを生成します - field:typeのオプションは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み] heroku open - no app specified
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] レイル 4 radio_button_tag default not selected
-
[解決済み] 未初期化の定数 "コントローラ名"