【问题标题】:How best to create table on initialization?如何最好地在初始化时创建表?
【发布时间】:2015-02-28 02:57:23
【问题描述】:

大家新年快乐。

在我的 Rails 4 应用程序中,我有一个表 plans,其中包含 user 可以订阅的计划的记录。

对于应用而言,在开发、测试和生产模式下任何时间填充此表绝对是最重要的。否则应用程序将无法运行。

创建这些记录的最佳方法是什么?

我应该将create 方法放入初始化程序吗?或者设置一个 rake 任务并在我重新启动服务器时手动运行它(虽然听起来有点麻烦)?

感谢您在这件事上的任何帮助。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    Rails 具有“种子”功能,可用于为数据库播种初始数据。 这是一个非常简单的功能:只需用一些 Ruby 代码填充 db/seeds.rb,然后运行 ​​rake db:seed

    来源:http://edgeguides.rubyonrails.org/active_record_migrations.html#migrations-and-seed-data

    如果您想在您的测试环境中使用数据,您可能也有兴趣为您的plans 使用固定装置。看看http://guides.rubyonrails.org/testing.html#the-low-down-on-fixtures

    【讨论】:

    • 听起来不错,我刚刚测试过了。问题是我每次都必须手动运行rake db:seed
    • 我不确定您所说的“每次”是什么意思。数据播种后,为什么要再次运行种子?
    • 例如,每次我使用rspec 命令运行我的测试套件。我不想在每次运行测试之前都输入rake db:seed
    • 您可以在测试中调用“Rails.application.load_seed”。看看这个问题:stackoverflow.com/questions/1574797/…
    • 好的,实际上我最终在初始化程序中创建了表,这对我来说非常好用,感觉也很好。感谢您的帮助。
    猜你喜欢
    • 2017-04-20
    • 2014-10-21
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    相关资源
    最近更新 更多