instance.attribute_name和instance [:attribute_name]对于续集模型属性(db列)是否完全相同?

时间:2018-06-09 13:10:20

标签: ruby-on-rails postgresql sequel sequel-gem

我使用rails(5.1.4)+续集(5.9.0)gem + postgresql + rack-mini-profiler(最新)+ sequel-rails(1.0.1)

我试着弄清楚为什么我的应用程序很慢,而且我现在找到的是:

我做了一个简单的查询来获取帖子@posts = Post.all(比如~~ 150)

我有部分渲染(简化):

<% @posts.each do |post| %>
  <%= post.title %>
  <%= post.body %>
<% end %>

现在,如果我查看信息rack-mini-profiler的日志,我会看到一些奇怪的

SELECT NULL; 

请求会降低渲染速度,但如果我将.方法更改为:[]

<% @posts.each do |post| %>
  <%= post[:title] %>
  <%= post[:body] %>
<% end %>

NULL个查询消失,渲染变得更快({1}}和title都只是我的数据库中的字段,没有其他内容)

为什么呢?这是我需要知道的关于body gem的事情,我将来不会使用sequel或者我错过了什么?

UPD

如果我尝试从控制台请求,我会收到:

instance.method

奇怪的第一个幻像请求是什么?我该如何调试并粉碎它?

由于

1 个答案:

答案 0 :(得分:0)

最后,我发现了问题:

:connection_validator plugin

绕过这个插件,除非你真的需要它!