チーム開発 カテゴリ機能の実装 categoryモデル作成〜DB作成
チーム開発・フリマアプリのカテゴリ機能実装に入りました。
スクレイピングとは
まず実装要項を確認。スクレイピング禁止の要項があり、分からなかったので調査。
スクレイピング:ウェブサイトから情報を取得し、その情報を加工して新たな情報を生成すること。
禁止されている理由は、参考サイトからスクレイピングすることで、連続したアクセスで教室から当該サービスへのアクセスが制限される可能性があるためだと思われます。
カテゴリ内容は1000個ほどあったので、スクレイピングではなく内容を作る方法を考えます。
実装手順
次にメルカリを確認し、機能と実装部分の整理。
ざっくり下記の実装段階に分けられそうでした。
step1 categoryモデル作成〜DB作成
step2 topページ ヘッダーのドロップダウンメニュー作成
step3 商品出品機能との連携
作業内容
☆step1 categoryモデル作成〜DB作成
・ancestry gemのインストール
・categoryモデル作成 → アソシエーション記述
・migrationファイル編集 → DB作成
・ancestyメソッドでカテゴリ追加の記述
ancestory gemを使うことで多対多の関係が1対多の関係になりDB設計がシンプルになりました。
(パスを使用し親子孫の関係を作成、アンチパターンを避けることができました。)
DBアンチパターン参考:https://kyabatalian.hatenablog.com/entry/2016/12/19/193430
DB経路列挙型:https://techracho.bpsinc.jp/hira/2018_03_15/53872