【发布时间】:2013-10-16 13:05:45
【问题描述】:
我是使用 Ruby on Rails 开发的新手,在创建 Web 应用程序时遇到了一些问题。
1) 我创建了一些种子数据。
2) 然后我在控制台上尝试了 db:reset。
3)我发现虽然数据库(sqlite)中的数据正确更新,但视图仍然没有变化。我在控制器中写的内容如下:
@members = Member.order("number")
4) 然后我通过我的网络应用程序添加了一些额外的数据(这次不使用控制台),发现数据显示在视图页面的列表中,尽管数据没有添加到数据库中。
我尝试了以下操作:
1)我也试过在数据库中写SQL,结果是一样的(正确插入数据库但没有显示在视图页面上)。
2) 我重新启动了 httpd(我正在使用 Passenger )并且没有任何变化。
3) 我添加了 Member.reload / Member.reset_column_information,如下所示:
Member.reload @members = Member.order("number")
编写此代码后,更改仅在第一次反映。
4) 我发现覆盖/model/目录下的文件后,更改会反映在视图页面上。
5) 我将 config/environments/development.rb 设置如下:
config.cache_classes = false
没有任何改变。
6) 我在 Rails 控制台上编写了以下代码:
重新加载!
没有任何变化。
问题是:
1) 为什么会发生这些奇怪的行为?
2) Rails 在没有数据库的情况下在哪里保存和添加数据以及如何保存和添加数据?
3) 有没有办法在通过 rake db:reset 更改数据库后自动将更新反映到视图中?
【问题讨论】:
-
“视图中的数据没有改变”到底是什么意思?
标签: ruby-on-rails ruby database sqlite activerecord