チーム開発 カテゴリ機能の実装 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