プログラミングスクールの課題でrailsを使用したメルカリのようなフリマアプリを作成しています。
商品出品のフォームを作成するときにセレクトボックスで都道府県を選択するものを以下のhamlで作成しました。
%select{name: "prefecture"} %option{value: "初期"}選択してください %option{value: "北海道"} 北海道 %option{value: "青森"} 青森県 %option{value: "岩手"} 岩手県 ~~~省略~~~ %option{value: "鹿児島"} 鹿児島県 %option{value: "沖縄"} 沖縄県 %option{value: "未定"} 未定
するとメンターより「active_hashを使った方がいい」と伺ったのでactive_hashについて調べたのですが、メリットがいまいちよくわからなくて困っています。
active_hashについてネットで検索してみましたが、ざっくりした流れで言うと
gem'active_hash'を入れる ↓ addressモデルをrails g modelで作る。 ↓ prefectureモデルを自作する。 ↓ prefecture.rbを class Prefecture < ActiveHash::Base self.data = [ {id: 1, name: '北海道'}, {id: 2, name: '青森県'}, {id: 3, name: '岩手県'}, {id: 4, name: '宮城県'}, ~~~省略~~~ {id: 44, name: '大分県'}, {id: 45, name: '宮崎県'}, {id: 46, name: '鹿児島県'}, {id: 47, name: '沖縄県'} ] end と設定する。 ↓ addressモデルとprefectureモデルをアソシエーションで関連付ける。 @address.prefecture.nameで名前が取れるようになる。
といった感じになりますよね?
正直手間としては最初のhamlでずらっと書く方が楽なような・・・
active_hashを使うべきデータの定義はどこかのページをコピペしたのがどのサイトも
•これから扱うデータがDBにデータとして保存しておくほど重要ではない、かつ、基本的に変更されない。
•ActiveRecordと同じ感覚でデータを操作したい。
と書いてあり、これもよく意味が分かりません(特に前者)。
active_hashを使用することのメリットはいったい何なのでしょうか?また、逆に使わないとどのような手間・エラーが発生する可能性があるのでしょうか?
無知でお恥ずかしいのですが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/27 01:28