Ruby on Railsの認定試験「Rails4技術者認定ブロンズ試験」(運営:Rails技術者認定試験運営委員会)の模擬問題にチャレンジする連載の第4回です。今回は、Active Record、Action Mailer、Active Supportに関する問題を選んでみました。メソッドの動作、引数から、実行時エラーから原因の読み取りまで、細かな部分の知識を確認しています。実際の試験でも、こうしたところまで問われますから、しっかり学習しておきましょう。
「Rails4技術者認定ブロンズ試験」対応の模擬試験問題です。株式会社Dive into Codeの野呂浩良が出題します。
問題1~4
問題1
Userモデルに以下のvalidationを設定した。
Userモデルのインスタンスをローカル変数userに代入して、user.updateを実行した際に呼び出されないものを全て選びなさい。
class User < ActiveRecord::Base
after_commit -> {puts "commitの後にコールバック"}
after_validation -> {puts "validationのあとにコールバックされる"}
before_save -> {puts "saveの前にコールバックされる"}
before_create -> {puts "createの前にコールバックされる"}
after_create -> {puts "createの後にコールバックされる"}
end
- 1.after_commit -> {puts “commitの後にコールバック”}
- 2.after_validation -> {puts “validationのあとにコールバックされる”}
- 3.before_save -> {puts “saveの前にコールバックされる”}
- 4.before_create -> {puts “createの前にコールバックされる”}
- 5.after_create -> {puts “createの後にコールバックされる”}
解答・解説
1.update後にデータをcommitします。commitされた後にコールバックされるので正しいです。
2.エラーチェックをするため、validationの後にコールバックされるので正しいです。
3.updateはすでに存在するものをsaveします。 saveされる前にコールバックされるため、正しいです。
〔正解:4、5〕
問題2
CustomerモデルとOrderモデルに以下の関連付けを定義した。Customerを削除した場合に関連付けられるOrderを削除したい。( )に入る適切なものを1つ選びなさい。
class Customer < ActiveRecord::Base has_many :order,dependent: :( ) end class Order < ActiveRecord::Base belongs_to :customer end
- 1.delete
- 2.destroy
- 3.remove
- 4.deleted
解答・解説
dependent: :destroyを記入することによって関連付けれられたデータが削除されます。1.のdeleteや、3.および4.のdeletedという書き方はできません。
〔正解:2〕
問題3
次のエラー文が表示されたとき考えられる答えを選べ。
Templete is missing
- 1.viewがない
- 2.コントローラがない
- 3.routingができていない
- 4.コントローラのアクションがない
解答・解説
2.の「コントローラがない」場合は、uninitialized constant コントローラ名Controller。
3.の「routingできていない」ときは、No route matches。
4.の「コントローラのアクションがない」場合は、The action 'アクション名' could not be found for コントローラ名 controllerとなります。
〔正解:1〕
問題4
フォームタグを使ってチェックボックスを作った。その際チェックボックスがオンになっているか検証するメソッドは以下のどれか。
- 1.accept
- 2.confirm
- 3.confirmation
- 4.acceptance
解答・解説
3.の回答は、2つのテキストフィールドが完全に一致するか検証するときに使いますので間違いです。1.と2.は使うことができないメソッドです。
〔正解:4〕
この記事は参考になりましたか?
- Rails4技術者認定ブロンズ試験 模擬試験問題集連載記事一覧
-
- 【Rails4ブロンズ】rails g modelコマンドで外部キー制約を同時作成するため...
- 【Rails4ブロンズ】価格(price列)の最大値や最小値、合計を求めるActive R...
- 【Rails4ブロンズ】文字列を単数形から複数形にするActive Supportのメソッ...
- この記事の著者
-
野呂 浩良(株式会社Dive into Code)(ノロ ヒロヨシ)
MBAエンジニア講師。リクルートやワークスアプリケーションズなど異業種・異職種への転職を4度経験。あらゆる時間を計測し、未経験の職務でゼロから短期間に成果をあげる独自の生産性向上手法を確立。表彰多数。2014年にグロービス経営大学院大学MBAを取得。1年間の独立・起業過程でエンジニア人材の不足を痛感し、ゼロから独学でプログラミングを学習して2ヶ月でWEBアプリケーションを開発する。その経験と学習法を活かし、非エンジニアからエンジニアへ転向するた...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

