Shoeisha Technology Media

IT人材ラボ

注目の特集・連載

【Rails4ブロンズ】rails g modelコマンドで外部キー制約を同時作成するための指定は?

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

 Ruby on Railsの認定試験「Rails4技術者認定ブロンズ試験」(運営:Rails技術者認定試験運営委員会)の模擬問題にチャレンジする連載の第6回です。今回はrails g modelコマンドでの外部キー制約の指定や中間モデル作成のための指定、ポリモーフィック関連付けの定義方法などを採り上げます。また「すべてのテストを実行し、かつデータベースをリセットするコマンド」など現場でも有益なコマンドについての出題もあります。

Rails4技術者認定ブロンズ試験」対応の模擬試験問題です。タイムシフト株式会社の野呂浩良が出題します。

問題1~4

問題1

rails g modelコマンドで外部キー制約を同時作成するために正しいものを選べ。

  • 1. references
  • 2. reference
  • 3. relations
  • 4. relation

解答・解説

選択肢1のreferencesを使うことによって外部キーが同時に作られます。選択肢2、3、4は rails g(ジェネレータコマンド)では使えません。

〔正解:1

問題2

UserモデルとBlogモデルを多対多の関係にする。その際に中間テーブルとなるLikeモデルを作成する。

rails g modelコマンドを使った際に正しいものを選べ。

  • 1. rails g model like user:references blog:references
  • 2. rails g model like user:reference blog:reference
  • 3. rails g model like user:relations blog:relations
  • 4. rails g model like user:relation blog:relation

解答・解説

中間テーブルを作る際は選択肢1のreferencesを使うことができます。選択肢2、3、4はrails g(ジェネレータコマンド)では使えません。

〔正解:1

問題3

validationの結果がnilのときに検証をスキップできるオプションは以下のうちのどれか。

  • 1. :allow_nil
  • 2. :allows_nil
  • 3. :allow_blank
  • 4. :allows_blank

解答・解説

:allow_blankは空の場合にスキップするメソッドです。:allows_nil:allows_blankは存在しません。

〔正解:1

問題4

特定のモデルが他の複数のモデルに属していることを、1つの関連付けのみで表現することができる「ポリモーフィック関連付け」を定義する正しい方法を選びなさい。

  • 1. 参照先の外部キーを設定するカラムだけを作成する。
  • 2. 参照先のモデル名を設定するカラムだけを作成する。
  • 3. 参照先の外部キーとモデル名を設定するカラム両方を作成する。
  • 4. 設定する必要はない。

解答・解説

参照先モデルの外部キー「id」と参照先モデル名を格納する2つのカラムが必要になります。

〔正解:3

※この続きは、会員の方のみお読みいただけます(登録無料)。



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 野呂 浩良(株式会社Dive into Code)(ノロ ヒロヨシ)

    MBAエンジニア講師。リクルートやワークスアプリケーションズなど異業種・異職種への転職を4度経験。あらゆる時間を計測し、未経験の職務でゼロから短期間に成果をあげる独自の生産性向上手法を確立。表彰多数。2014年にグロービス経営大学院大学MBAを取得。1年間の独立・起業過程でエンジニア人材の不足を痛感し、ゼロから独学でプログラミングを学習して2ヶ月でWEBアプリケーションを開発する。その経験と学習法を活かし、非エンジニアからエンジニアへ転向するためのプログラミング・スクール「Dive into Code」を創業。

    株式会社Dive into Code 代表取締役
    グロービス経営大学院大学MBA・経営学修士
    Rails3認定ブロンズ技術者

バックナンバー

連載:Rails4技術者認定ブロンズ試験 模擬試験問題集
IT人材ラボ
2016/08/22 14:00 /article/detail/179
All contents copyright © 2017-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.0