ActiveHash

ActiveHashとは

ActiveHashは、Ruby on Railsフレームワークで使用されるGem(ライブラリ)の1つです。 ActiveHashを使用すると、データベースの代わりにモデル内にデータを格納して扱うことができます。 ActiveHashを使うと、データベースにテーブルを作成する必要がなくなります。 例えば、アプリケーション内で使う設定情報や、ドロップダウンリストの選択肢など、データベースに格納するほどの規模ではない、 でもコードからアクセスできるようにしておきたいデータに活用されます。

こんな感じです。 Webページでよく目にするプルダウンから選択する、あれですね。

ActiveHashにアソシエーションを設定する場合、またバリデーションをかける場合、それぞれ決まりがあります。 ActiveHashを用いて、belongs_toを設定するには、extend ActiveHash::Associations::ActiveRecordExtensionsと記述します。 また、has_manyを設定するには、include ActiveHash::Associationsと記述します。

アソシエーション組むにもひとくせあります。 AvtiveHashで定義されているmoduleというものを取り込む必要があるためです。

バリデーションについては、idに数字を付与して設定します。 なので、カラムの型はstringではなくintegerです。 また、選択必須ということであってもprecence: trueではなく、numericality: { other_than: ●}というヘルパーメソッドを使用します。

●の部分に『1』と記述することで、『1』以外の選択をされた場合に検証は成功となりデータベースに保存されます。 『1』が『---』にあたるので選択必須という条件がクリアとなるわけです。 最初、ここをprecence :trueで考えていたらどうやら違っていたみたいで、それ以外にも継承するモデル名の大文字小文字間違いとか、 endの記述もれ、位置のずれなどなど、エラー満載でなかなか進まない。

でも、提出期限があるわけではないので、自分の納得いくまで試行錯誤できるので満足感あり。 めっちゃ疲れるけど。でもでも、楽しいです。

次は苦手なJavaScript!がんばります!!

ついこの間まで、県が主催するコーディングブートキャンプに参加していました。 そこで携わったフリマアプリを目下復習中です。 チーム開発に参加しておりまして、開発中も思っていましたが、自分ひとりでやってみてさらに深まるチームメンバーへの感謝。 みんな大変だったんだなと、つくづく感じる今日この頃です。

走馬灯のようにカリキュラムを進めたものだから、理解が追いついておらず。最初からひとりで実装してみようと試みております。 ユーザー管理機能を実装中から気づきはたくさんあったのですが、忘れちゃったので...

記憶定着のためにも、今からでも綴っていこうと思います。