Являются ли instance.attribute_name и instance [: attribute_name] одинаковыми для атрибута модели сиквела (столбец БД)? - PullRequest
0 голосов
/ 09 июня 2018

Я использую рельсы (5.1.4) + сиквел (5.9.0) gem + postgresql + rack-mini-profiler (последние) + сиквел-рельсы (1.0.1)

Я пытаюсь выяснить,почему мое приложение работает медленно и вот что я нашел на данный момент:

Я делаю простой запрос, чтобы получить сообщения @posts = Post.all (примерно ~ 150 из них)

, и у меня есть частичное отображениеэто (упрощенно):

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

Теперь, если я посмотрю журнал info rack-mini-profilerler, я увижу странные

SELECT NULL; 

запросы, которые замедляют рендеринг, но если я изменюсь. метод :[]

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

что NULL запросы исчезают и рендеринг становится намного быстрее (и title, и body - это просто поля в моей БД, больше ничего)

Почему?Это то, что мне нужно знать о sequel драгоценном камне, и я не буду использовать instance.method в будущем в этих случаях, или я что-то упустил?

UPD

если я попробую запрос с консоли, я получу это:

> Post.first
D, [2018-06-09T22:46:41.277269 #96772] DEBUG -- : (0.001008s) SELECT NULL
D, [2018-06-09T22:46:41.277952 #96772] DEBUG -- : (0.000362s) SELECT * FROM "posts" LIMIT 1

что за странный первый фантомный запрос?как я могу отладить и разбить его?

Спасибо

1 Ответ

0 голосов
/ 10 июня 2018

Наконец-то я обнаружил проблему:

это был : плагин connection_validator .

Обойдите этот плагин, если он вам действительно не нужен!

...