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