Shoeisha Technology Media

IT人材ラボ

注目の特集・連載

【Rails4ブロンズ】このコマンドにより生成されるマイグレーションファイルに記述されるコードは?

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

 Ruby on Railsの認定試験「Rails4技術者認定ブロンズ試験」(運営:Rails技術者認定試験運営委員会)の模擬問題にチャレンジする連載の第3回です。今回は、モデルの生成やマイグレーション、データベース設定などに関する模擬問題を出題します。Railsによるアプリ開発の特徴的な機能の1つですので、受験を予定していない方も、現場などで身に付けた知識が正確かどうか試してみてください。

Rails4技術者認定ブロンズ試験」対応の模擬試験問題です。株式会社Dive into Codeの野呂浩良が出題します。

問題1~4

問題1

app/modelsディレクトリ内にActiveRecord::Baseクラスを継承したクラスファイルを自動生成することができるコマンドは、次のうちどれか。正しいものを1つだけ選びなさい。

  • 1.rails g controller
  • 2.rails g migration
  • 3.rails new
  • 4.rails g scaffold

解答・解説

ActiveRecord::Baseクラスを継承したクラスファイルは、モデルのことです。モデルはrails g modelコマンド、あるいはrails g scaffoldコマンドを実行すると自動生成されます。

〔正解:4

問題2

マイグレーションファイル内に記述してマイグレーションを行うと「created_at」「updated_at」のカラムを自動生成することができるコードは以下のうちどれか。正しいものを1つだけ選びなさい。

  • 1.t.timestamps null: false
  • 2.t.timestamp null: false
  • 3.t.datetimes null: false
  • 4.t.date null: false
  • 5.t.times null: false

解答・解説

t.timestampsが正しい記述です。

2.と4.は、何もカラムを生成しません。

3.と5.は、StandardErrorが発生します。

〔正解:1

問題3

rails g scaffold Blog title:string content:text

のコマンドを実行した。

これにより生成されるマイグレーションファイルに記述されるコードは、次のうちどれか。正しいものを1つだけ選びなさい。

  • 1.

    class CreateBlogs < ActiveRecord::Migration
      def change
        create_table :blogs do |t|
          t.string :title
          t.text :content
          
          t.timestamps null: false
        end
      end
    end
  • 2.

    class CreateBlogs < ActiveRecord::Migration
      def change
        create_table :blogs do |t|
          t.string title
          t.text content
    
          t.timestamps null: false
        end
      end
    end
            
  • 3.

    class CreateBlogs < ActiveRecord::Migration
      def create_table :blogs
        t.string :title
        t.text :content
    
        t.timestamps null: false
      end
    end
  • 4.

    class CreateBlogs < ActiveRecord::Migration
      def change
        create_table :blogs do |t|
          t.title :string
          t.content :text
    
          t.timestamps null: false
        end
      end
    end

解答・解説

2.は、titlecontentがシンボル(:title:content)として記載されていません。

3.は、メソッド名がchangeではなくcreate_tableになっています。

4.は、t.title :stringt.content :textのようにカラム名とデータ型の記載位置が逆になっています。

〔正解:1

問題4

Railsアプリケーション内で利用するデータベースの設定情報を管理しているファイルとそのファイルが格納されているディレクトリは次のうち、どれか。正しい組み合わせを一つだけ選びなさい。

  • 1.config/database.xml
  • 2.config/db/database.rb
  • 3.config/database.yaml
  • 4.config/db/database.yml
  • 5.config/database.yml

解答・解説

データベースの設定情報を管理しているファイルはdatabase.ymlファイルです。格納されているディレクトリは、configディレクトリ内です。configディレクトリ内にdbというディレクトリは存在しません。

〔正解:5

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



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

著者プロフィール

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

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

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

バックナンバー

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