【问题标题】:rails server not reflecting changes to seed.rb filerails 服务器未反映对 seed.rb 文件的更改
【发布时间】:2015-04-15 13:14:52
【问题描述】:

Rails 和一般编程新手。

我有一个我正在开发的 Rails 应用程序,但我无法弄清楚发生了什么。

我的 index.rb 文件显示一组引脚。这些引脚是在 db > seed.rb

下创建和存储的

当我想添加一个新的 pin 时,我在 seed.rb 中创建它,它出现在我的 index.rb 文件中(在运行 rake db:seed 之后)。

但是,一旦我删除它并再次 rake,它仍然存在并且永远不会消失。

我可以进行其他更改,这些都反映了没有问题,只是我的 seed.rb 文件出现了问题。

我尝试重新启动我的 Rails 服务器,但没有任何效果。

这是在 localhost (rails s) 使用 PostgreSQL 使用最新版本的 rails

【问题讨论】:

    标签: ruby-on-rails ruby postgresql


    【解决方案1】:

    我想你已经理解了播种错误的想法。 它应该只用于向数据库添加初始数据。当您运行rake db:seed 时,它会将您在seed.rb 文件中定义的数据添加到与您当前运行的环境相关联的数据库中。

    因此,您必须截断/删除数据库的内容并再次为其播种,以反映您的 seed.rb 文件中的更改。

    【讨论】:

    • 好的,我是新手,所以我完全有可能混淆了这一点。我将如何删除数据库中的内容?
    • 登录到您的 PostgreSQL 服务器并截断存储数据的表。 postgresql.org/docs/9.4/static/sql-truncate.html
    • @Kenton 虽然技术上 robin 是正确的。您还可以在 ruby​​ 中创建一个小脚本并在控制台中执行它。我总是更喜欢这种方法,因为您可以确保在 ORM 中强制执行验证和引用完整性。要运行控制台,只需 rails c,您甚至可以使用 rails c --sandbox 测试您的脚本(这将在退出时回滚更改)。
    • 我最终做了 rake db:reset 并且效果很好。
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2015-05-20
    • 2014-11-26
    相关资源
    最近更新 更多