Open zerebom opened 3 years ago
直接Modelにメソッドを生やすとロジックが集約されて筋が良さそう。 各モデルにクラスメソッドを作成し、GCPのレスポンスであるresult(=json)を渡して組み立てることにする。
例↓
class Shop < ApplicationRecord has_many :reviews, dependent: :destroy has_many :photos, dependent: :destroy has_one :address # ref: https://qiita.com/suzuki-koya/items/1553c405beeb73f83bbc def self.from_result(result:, place_id:) shop = self.new shop.name = result['name'] shop.phone_number = result['formatted_phone_number'] shop.email = result['email'] shop.place_id = place_id shop end end
また、挙動の確認にはうちの会社で使われているテストライブラリである、Rspecでテストを書くことにした。
https://qiita.com/tocomi/items/2dba0de52eefdcf33fd7
APIのURLとgcpのplace_idを紐付けたい gcpからは現在のAPIで使われているshop_id(int)は取得できない(これは勝手にPythonで定義したもの) できればgcpから取得できるplace_id(str)を使用して各モデル間のリレーションを作成したい
photoの画像ファイルのセーブをどうやって実装するか。度のタイミングでセーブするか
1:多のデータに対してどうやってリレーションを作成するか
Why
15 で取得したGCPのレスポンスをDBに格納したい。
What
直接Modelにメソッドを生やすとロジックが集約されて筋が良さそう。 各モデルにクラスメソッドを作成し、GCPのレスポンスであるresult(=json)を渡して組み立てることにする。
例↓
また、挙動の確認にはうちの会社で使われているテストライブラリである、Rspecでテストを書くことにした。
https://qiita.com/tocomi/items/2dba0de52eefdcf33fd7
残タスク
懸念点
APIのURLとgcpのplace_idを紐付けたい gcpからは現在のAPIで使われているshop_id(int)は取得できない(これは勝手にPythonで定義したもの) できればgcpから取得できるplace_id(str)を使用して各モデル間のリレーションを作成したい
photoの画像ファイルのセーブをどうやって実装するか。度のタイミングでセーブするか
1:多のデータに対してどうやってリレーションを作成するか