コロナで無職になった私がエンジニアになるまで

コロナの影響で前職をクビになってから、エンジニアを目指してます。

オリジナルアプリ作成記 2 ~記事投稿ページの作成、ActiveHashでカテゴリーの設定~

眠い目こすりながら今日もアプリ作成です。
仕事のある日は、割と簡単な作業だけにして休みの日にガッツリ進めたい。
今日は、前回準備した記事投稿ページのレイアウトと、ActiveHashを設定。

f:id:Kosei_Program:20201221214551p:plain

レイアウトってカッコつけて言ったけども、やはりダセェ。
デザインできる人ってすげぇなって思う。
単に自分がデザインの勉強をしていないだけな気もするけども。


f:id:Kosei_Program:20201221214810p:plain

中身はこんな感じ。
埋め込みrubycssの設定ってどうするんだろ、って思って調べながら
適当にデザイン。
ここまでは特につまづくことなく。

続いてActiveHash。
まずはGemをインストール。

 
gem 'active_hash'

 

追加してbundle installで中身の作成です。

カテゴリーの中身を設定するためのmodelを作成。
マイグレーションファイルは必要ないので、スキップする。
% rails g model category --skip-migration
 
出来上がったmodelにActiveHash::Baseを継承させて設定する。
class Category < ActiveHash::Base
 self.data = [
   { id: 1, name: '--' },
   { id: 2, name: '作詞依頼' },
  { id: 3,........},

] end
こんな感じで設定したいカテゴリーを好きな数だけ追加する。

Requestの方のマイグレーションファイルにこのCategory_idを追加する。
今回は作成時にすでに作ったので、問題ない。

次にこのCategoryモデルとRequestモデルのアソシエーション。
class Request < ApplicationRecord
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :category
end
ActiveHashを使ったアソシエーションの設定はextend~~のように記述してmoduleを取り込む必要がある。

今度はCategoryモデル側の設定。
  include ActiveHash::Associations
  has_many :requests
この記述を追加する。
これでアソシエーションの設定は終了。

htmlでは、collection_selectでプルダウン形式でカテゴリーを表示させる。
<%= form.collection_select(保存されるカラム名, オブジェクトの配列, カラムに保存される項目, 選択肢に表示されるカラム名, オプション, htmlオプション) %>

大雑把にまとめたけども、今日やった作業はこんな感じ!
休みの日に実際に投稿してみて保存されるかを試したい。