【问题标题】:Location for yaml data files in ruby on railsruby on rails 中 yaml 数据文件的位置
【发布时间】:2016-06-13 22:23:37
【问题描述】:

我正在使用 yaml 文件为数据库提供初始化数据,并为我的一些服务模型提供初始化数据。我应该在哪里将这些文件存储在 ruby​​ on rails 应用程序中?

【问题讨论】:

    标签: ruby-on-rails yaml


    【解决方案1】:

    基于ruby_newbie 的评论和其他回复的普遍缺乏,似乎没有明确定义的rails 方式。合理的位置是

    rails_root/data
    
    rails_root/config/data
    
    rails_root/db/data
    

    【讨论】:

      【解决方案2】:

      您应该将应用程序运行所需的所有数据放入种子文件 (db/seeds.rb)。 http://edgeguides.rubyonrails.org/active_record_migrations.html#migrations-and-seed-data

      【讨论】:

      • seeds.rb 文件将是在数据库初始化 yaml 文件中加载数据的正确位置,但我应该将 yaml 文件放在哪里?
      • 你可以把它放在 config/constants.您是否有理由需要 .yml 文件?
      • 数据是一个冗长的相同格式的哈希数组。数据输入操作员将数据放入 yml 格式会更容易,而不是为每个散列重复散列键。该问题还询问服务模型中是否需要类似的数据。在这种情况下,数据不会进入数据库而是进入服务模型,因此 db/seeds 似乎不是正确的位置。
      • 假设我有一个服务模型 app/services/temperature.rb 从大量温度数据中插入温度。我可以将原始温度数据放在 temperature.rb 文件中,但在我看来,最好将其存储在 app/services/temperature.yml 的文件中?
      • 我认为这确实是一个偏好问题。我已经看到这样的数据存储在以下位置:1)db/data 2)项目下名为 data/ 的新文件夹 3)或者如果这是配置信息,请将其保存在 config/data
      【解决方案3】:

      如果您需要创建初始数据库状态,您可以使用“db/seeds/”中的种子文件。在您可以使用 rake 运行并在数据库中创建初始状态之后。

      在种子文件中,您可以毫无问题地使用 Rails 模型并运行以下命令 rake 来创建条目。

      take db:seed
      

      您可以查看 Rails 文档: http://edgeguides.rubyonrails.org/active_record_migrations.html#migrations-and-seed-data

      【讨论】:

        【解决方案4】:

        将固定数据加载到常量中而不需要存储在数据库中可能会有很好的用例。由于这是技术上固定的“数据”,我建议将其放入

        rails_root/db/yaml/
        
        # and you'll have files like
        
        rails_root/db/yaml/measurments.yml
        rails_root/db/yaml/locations.yml
        
        # or if you prefer
        rails_root/data/yaml/
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-21
          • 2011-03-17
          • 2012-12-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-01
          • 1970-01-01
          相关资源
          最近更新 更多