Shoeisha Technology Media

IT人材ラボ

注目の特集・連載

【Rails4ブロンズ】文字列を単数形から複数形にするActive Supportのメソッドは?

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

 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

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



  • ブックマーク
  • 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:10 /article/detail/120
All contents copyright © 2017-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.0