gpt4 book ai didi

ruby-on-rails - rails : query results are not updated after changing data in sqlite

转载 作者:行者123 更新时间:2023-12-03 19:48:40 24 4
gpt4 key购买 nike

我是使用 Ruby on Rails 开发的新手,在创建 Web 应用程序时遇到了一些问题。

<行为>

1)我创建了一些种子数据。

2)然后我在控制台上尝试了 db:reset 。

3)我发现虽然数据库(sqlite)中的数据正确更新,但 View 仍然没有变化。我在 Controller 中写的内容如下:

@members = Member.order("number")



4)然后我通过我的网络应用程序添加了一些额外的数据(这次不使用控制台),发现数据显示在 View 页面的列表中,尽管数据没有添加到数据库中。

<我试过的>

我尝试了以下操作:

1)我也试过在数据库中写SQL,结果是一样的(正确插入数据库但没有显示在 View 页面上)。

2)我重新启动了 httpd(我正在使用 Passenger )并且没有任何变化。

3)我添加了 Member.reload/Member.reset_column_information 像这样:

Member.reload
@members = Member.order("number")


编写此代码后,更改仅在第一次反射(reflect)。

4)我发现覆盖/model/目录下的文件后,更改会反射(reflect)在 View 页面上。

5)我设置 config/environments/development.rb 如下:

config.cache_classes = false



没有任何改变。

6)我在rails控制台上写了以下代码:

reload!



没有什么变化。

< 问题 >

问题是:

1)为什么会发生这些奇怪的行为?

2) Rails 在没有数据库的情况下在哪里保存和添加数据以及如何保存和添加数据?

3) 有没有办法在通过 rake db:reset 更改数据库后自动将更新反射(reflect)到 View 中?

最佳答案

尝试:

Member.connection.clear_query_cache

发生这种情况的原因是模型具有其内部 SQL 缓存系统,这有助于避免多次调用某些查询。

总的来说,它非常聪明,可以通过 ActiveRecord 选择所做的更改。 ,但无法选择外部进程(控制台)所做的更改。

关于ruby-on-rails - rails : query results are not updated after changing data in sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com