LoginSignup
2
2

More than 3 years have passed since last update.

Ruby on Railsの理念を具体例を用いて解説

Last updated at Posted at 2021-02-09

CoC ~Convention Over Configuration~

今回も以前紹介したRuby on Railsの理念に関する内容を深ぼっていきます。

CoCとは実際にどの様な場面で用いられているのか...

[Convention Over Configurationの略]
「設定よりも規約を優先する」

ここでいう規約とは、
Railsがあらかじめ決めているルールのことを指します。
ゼロから自身で設定するのではなく「設定よりも規約を優先」して作業するという捉え方で問題ないようだ。

具体例

Ruby on Railsを使って開発を進めてきて

「コマンドだけでRailsが自動でファイルなどを生成してくれた」
Railsが勝手に処理を用意してくれていた」

なんていう経験をしてきたと思います。
まさにソレが「設定よりも規約を優先」して作業するということ


ターミナル
rails g model item

item.rbファイルが自動で生成される


items_controller.rb
def index
    @items = Items.all.order(id: 'DESC')
end
# コントローラーにindexというアクションを定義する

index.html.erbがレスポンスとして返却される処理が用意される


CoCを意識するメリット

  • すでに定義されている処理を利用するだけ
  • 開発スピードが上がり質も担保できる
  • 規約は開発者同士の共通認識であるため可読性が向上する

CoCを無視したらどうなるの?

CoCを無視
class TestsController < ApplicationController
 def render_top_page
  render template: "tests/index"
 end
end

アクションではなく、render_top_pageという自作のアクションを使用。
これにより、レスポンスであるビューファイルは自動で設定されないため、
renderメソッドを使用してレスポンスを指定。あぁダルい


CoCを意識
class TestsController < ApplicationController
 def index
 end
end

index.html.erbというトップページのビューファイルを返却する場合、
規約にしたがってアクション名とビューファイル名を揃える
(レスポンスを自動で設定してくれる・レスポンスの指定をする必要がない。)
最小限のコードで実装が可能。ほんっと便利

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2