私は Rails に比較的慣れていないので、気象データを扱うアプリケーションを作成しています。私の主な用途は米国内であるため、ユーザーへのプレゼンテーションはおそらく華氏で行われます。私が消費するデータ フィードは摂氏です。
これを解決する通常の方法はcelsius
、モデルに列を作成してfahrenheit
から、F から C に変換するカスタム モデル メソッドを使用することです。ただし、さまざまな設計上の決定により、温度の特定のフィールドはありません。(tl;dr 天気だけでなく、さまざまな環境条件を追跡しているので、一般的なvalue
列と列がありtype
ます。)
いくつかの選択肢があります:
- F を内部に格納します。気象データ フィードを使用する場合にのみ C に変換します。健全な測定システムを備えた地域にユーザーがいないと仮定します。
- C を内部に格納します。ビューで F に変換します (ユーザーの設定が F を表示することである場合)。
value
私が見る限り、変換する数式は Rails ビューと JS の両方で実装する必要があるため、これは注意が必要です。 - C を内部に格納します。コンテキストに応じて F に変換します。つまり、
type
温度が温度で、ユーザーが華氏を好むレコードを作成する場合before_save
は、変換を行うコールバックを実行します。読書のために何をすべきかわかりません...
これを構造化する正しい方法は何ですか?ありがとう!