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!がんばります!!
ついこの間まで、県が主催するコーディングブートキャンプに参加していました。 そこで携わったフリマアプリを目下復習中です。 チーム開発に参加しておりまして、開発中も思っていましたが、自分ひとりでやってみてさらに深まるチームメンバーへの感謝。 みんな大変だったんだなと、つくづく感じる今日この頃です。
走馬灯のようにカリキュラムを進めたものだから、理解が追いついておらず。最初からひとりで実装してみようと試みております。 ユーザー管理機能を実装中から気づきはたくさんあったのですが、忘れちゃったので...
記憶定着のためにも、今からでも綴っていこうと思います。