プログラミング備忘録

プログラミングの学習状況をメモしています

74日目

今日の学習

Ruby on Rails

ページのジャンル分け

今日は、チーム開発を進めた。

各記事はジャンル毎に分類されており、クエリパラメータを利用して特定のページでは特定のジャンルのみを表示させるように設定する。

enum genre: {
  invisible: 0, # 非表示
  japanese_language: 1,
  social_studies: 2,
  math: 3,
  science: 4
}

科目のジャンルを、文系と理系に分ける。

HUMANITIES_GENRE_LIST = %w[japanese_language social_studies].freeze
SCIENCES_GENRE_LIST = %w[social_studies math].freeze

この定義を利用して、表示するジャンルを制限する。

def self.genre_select(genre)
  if genre == "japanese_language" || "social_studies"
    where(genre: HUMANITIES_GENRE_LIST)
  else
    where(genre: SCIENCES_GENRE_LIST)
  end
end

以上を対応するモデル(今回の例ではcontentとする)に記述し、ここで作成したgenre_selectメソッドをコントローラで利用する。

def index
  @contents = Content.genre_select(params[:genre])
end

分岐したページ先で、タイトルがそれぞれに対応した表示になるようにヘルパーメソッドを追加する。

app/helper/application_helper.rb

def page_title
  if params[:genre] == "japanese_language" || "social_studies"
    "文系科目"
  else
    "理系科目"
  end
end

このメソッドをビューファイルで用いる。

<%= page_title %>

学習メモ

テーブル名、カラム名命名

命名一覧 - Qiita

テーブル名、カラム名の例。

ER図を作成しているとき、どのような名前にするべきか悩むことが多かったので、参考にしたい。