如果我打开 Rails 控制台并创建一个新的 Widget:
>> widget = Widget.new
>> widget.name = "Whatever"
>> widget.save
Widget 保存无误。但是,当我运行时:
>> Widget.all
这个新的 Widget 没有出现在返回的记录列表中。但是,如果我重新启动 Rails 控制台并再次运行相同的命令:
>> Widget.all
小部件现在出现在记录列表中。为什么会这样?我在使用 Rails 服务器时遇到了同样的问题;如果我使用我生成的脚手架 View 创建或编辑一个 Widget,在我重新启动 Rails 服务器之前,这些 Widget 不会出现在显示 View 中。
顺便说一句,我在 Windows 7 上,使用 RubyMine 作为我的 IDE,并使用 rails 3.2.4 和 sqlite3。
最佳答案
上面的一位评论者建议我更新到 rails 3.2.11。我更新了我的 Gemfile 中的版本并运行 bundle update
并解决了这个问题。我不知道更新前是哪个 gem 或它们的组合出现问题。
关于ruby-on-rails - Ruby on Rails 服务器在重新启动之前不会反射(reflect)对数据库记录的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527831/