【问题标题】:Store Rails data as integer or string将 Rails 数据存储为整数或字符串
【发布时间】:2013-07-13 22:38:18
【问题描述】:

嘿,在我的 Rails 应用程序中,我想存储天气,而应用程序位于生产环境或开发环境中。在我的 activerecord 迁移中,我为 :environment ad 设置了一个整数,0 是开发,1 是生产。然后,当我想将其用作纯文本时,我有一个辅助方法将其转换为 0 和 1 的文本。我应该将此值作为整数还是纯文本存储在我的数据库中?我想使用最有效的方法,因为我想做一个像if twitter.is_development() 这样的方法。

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-4


    【解决方案1】:

    将它存储为整数会更有意义,因为它们代表数字。如果你想使用文本,那么“真”和“假”会更合适。

    无论您做出什么决定,您都无法衡量性能差异。选择最容易理解和维护的。 “过早的优化是万恶之源”。

    【讨论】:

    • 谢谢你,我非常同意过早的优化是万恶之源。我发现自己花费了毫无意义的时间来修复没有损坏的东西。
    【解决方案2】:

    我会将列命名为“env”,并使用“production”、“development”和“testing”作为值来指示当前的 env。

    你无法预测未来,存储原始值在很多地方都可以帮助你,比如我称之为 rake 任务,

    "rake product:update_price RAILS_ENV=production",

    然后我会使用从 env 列中检索到的值,而无需任何逻辑,例如

    "rake product:update_price RAILS_ENV=#{env}",
    

    这样,如果它的开发、生产或测试将相应地使用。

    检查一下,Rails.env vs RAILS_ENV,也许你根本不需要存储任何东西。

    【讨论】:

    • 环境的使用不是为了我的 rails 应用程序,而是为了为其他用户构建的服务。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 2021-03-17
    • 2018-01-04
    相关资源
    最近更新 更多