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 %>
学習メモ
テーブル名、カラム名の命名
テーブル名、カラム名の例。
ER図を作成しているとき、どのような名前にするべきか悩むことが多かったので、参考にしたい。