問題6~11
問題6
「date = Date.today」の式が定義されている時に、以下の結果を得るために実行する必要があるものを1つ選びなさい。
2015-09-30 00:00:00 +0000
- 1. date.to_date
- 2. date.to_time
- 3. date.to_datetime
- 4. date.tomorrow
解答・解説
1.のdate.to_date
は、「Wed, 30 Sep 2015
」を返します。 2.のdate.to_time
は、「2015-09-30 00:00:00 +0000
」を返します。 3.のdate.to_datetime
は、「Wed, 30 Sep 2015 00:00:00 +0000
」を返します。 4.のdate.tomorrow
は、「Thu, 01 Oct 2015
」を返します。
〔正解:2〕
問題7
テストのフィクスチャの説明について、誤っているものを1つだけ選びなさい。
- 1. テストデータを記述する
- 2. YAML形式で記述する
- 3. テスト実行直前にdevelopmentデータベースに投入するデータの元になる
- 4. test/fixturesディレクトリ内に置かれる
- 5. フィクスチャファイル内の行の先頭に#文字を記載することでコメント化できる
解答・解説
フィクスチャは、test
データベースに投入するデータの元になります。development
データベースには影響は与えません。
〔正解:3〕
問題8
Ruby on Railsの命名規則について正しいものを1つ選びなさい。
- 1. テーブル名は、先頭文字小文字・単数形である
- 2. モデルのファイル名は、先頭文字大文字・単数形である
- 3. コントローラのファイル名は、先頭文字小文字・単数形である
- 4. モデルのクラス名は、先頭文字大文字・複数形である
- 5. コントローラのクラス名は、先頭文字大文字複数形である
解答・解説
例えば、
-
記事投稿を扱う場合は、テーブル名は、先頭文字小文字の複数形「
blogs
」 -
モデルのファイル名は、先頭文字小文字の単数形「
blog.rb
」 -
コントローラのファイル名は、先頭文字小文字の複数形「
blogs_controller.rb
」。 -
モデルのクラス名は、先頭文字大文字の単数形「
Blog
」。 -
コントローラのクラス名は、先頭文字大文字の複数形「
BlogsController
」
となります。
〔正解:5〕
問題9
app/models/blog.rbファイル内で以下のアソシエーションを設定している場合に使えないメソッドを1つ選びなさい。
class Blog < ActiveRecord::Base belongs_to :user (省略) end
- 1. blog.build_user
- 2. blog.users
- 3. blog.create_user
- 4. blog.user = user
- 5. user.blogs
解答・解説
user
とblog
は、1対多の関係にあるため、1件のblog
に対して複数のuser
は紐付きません。そのため、2.の「blog.users
」は使えません。
〔正解:2〕
問題10
if blog.nil? || blog.empty? と同じ意味のものを1つ選びなさい。
- 1. if blog.blank
- 2. if blog.nil_or_empty?
- 3. if blog.blank?
- 4. if blog,nil? or blog.empty?
- 5. if blog.not_nil?
解答・解説
3.以外の書き方は存在しません。「Object#blank?
」の書き方は、オブジェクトが空や空白、空白文字であればtrue
を返します。nil
の場合にはfalse
が返ります。
〔正解:3〕
問題11
/blogsでアクセスできるtitleとcontentという入力欄が一つずつある画面一式を作成するコマンドを1つ選びなさい。
- 1. rails g controller title content
- 2. rails g scafold blog title:string content:text
- 3. rails g scaffold blogs title:string content:text
- 4. rails generate scaffold blog title:string content:text
- 5. rails generate controller title:string content:text
解答・解説
1.は、コントローラとアクションメソッド、ビューを生成するコマンドです。
2.は、scaffold
のf
が1つ足りません。
3.は、/blogss
でアクセスできるものになります。
4.が正解。
5.は、コマンド誤りです。
〔正解:4〕