我对 Rails 比较陌生,我正在构建一个处理天气数据的应用程序。我的主要用途将在美国境内,因此向用户展示的内容大概是华氏度。我使用的数据馈送以摄氏度为单位。
我解决这个问题的正常方法是celsius
在模型中有一个列,然后是一个fahrenheit
从 F 转换为 C 的自定义模型方法。但是,由于各种设计决策,我没有特定的温度字段。(tl;博士我正在跟踪许多不同的环境条件,而不仅仅是天气,所以我有一个通用value
专栏和一个type
专栏。)
我看到了一些选择:
- 在内部存储 F。仅在我使用天气数据馈送时转换为 C。假设我从来没有在一个地区拥有健全的测量系统的用户。
- 在内部存储 C。在视图中转换为 F(如果用户的偏好是查看 F)。这会很棘手
value
,因为据我所知,需要在 Rails 视图和 JS 中实现转换公式。 - 在内部存储 C。根据上下文转换为 F,即当创建一个
type
温度为温度且用户偏好华氏温度的记录时,运行一个before_save
执行转换的回调。不知道读什么...
构建这个的正确方法是什么?谢谢!