问题标签 [rails-bullet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
764 浏览

ruby-on-rails-3 - 使用 gem "bullet" 修复 "declarative_authorization" gem 中的 N+1 查询

目前我正在开发一个大型 Web 应用程序并使其运行更快,我决定重构所有 N+1 查询(以减少对数据库的请求数量,http://rails-bestpractices.com/posts/29-fix-n -1-查询)。所以我安装了现在不适用于 Rails 3.1.1 的 gem "bullet"(你可以使用来自https://github.com/flyerhzm/bullet的 fork )。在每个页面上使用 declarative_authorization gem 时,我都会收到相同的警报:

您能帮我解决这个问题并加快查询速度吗?

0 投票
1 回答
3460 浏览

mysql - 在 Rails 3 中渴望加载?

我正在尝试学习如何提高 Rails 应用程序的性能,而我正在研究的第一步是急切加载。

我已经配置了子弹 gem,它显示了我可以在哪里使用急切加载,但是,我不太确定如何使用帮助!

一个示例日志是:

跳出来的行是:

我不确定的是,“发现者”的定义是什么。它是视图中的块还是控制器中的块。

以我跳出的第一部分日志为例,控制器如下:

该模型:

请注意,我使用的是旧数据库,因此出现了奇怪的列名等。

该视图包含以下内容:

那么,我应该将其他推荐的列添加到视图“查找器”吗?或者别的地方?

任何帮助,将不胜感激!

0 投票
1 回答
390 浏览

ruby-on-rails - .includes 方法不起作用

我已经安装了 gem bullet 来增强我的小应用程序(与 Rails 4 Edge 一起运行)的性能

但是,“.includes”方法似乎不起作用:

这将返回“无法将符号转换为整数”

当我在 Rails 控制台中运行它时也是如此,对于任何关联我都会遇到同样的错误;.includes 已被弃用,还是我做错了?谢谢

这是完整的跟踪:

最后但并非最不重要的一点是,错误在哪里:

文章型号:

0 投票
1 回答
1150 浏览

ruby-on-rails - Is it possible to show the gem bullet's aleter only when User.id == 1?

I'm using the gem called "bullet" https://github.com/flyerhzm/bullet This help to avoid N + 1 problem.

I'd like to use this in production mode with my account(User.id==1) Is it possible?

I've coded this in /config/environments/production.rb but the alert pops up whoever the users access.

0 投票
1 回答
1765 浏览

ruby-on-rails - gem bullet 启用/禁用某些路径/控制器

我可以仅为某些路径/控制器启用/禁用 javascript 警报(但甚至可以是日志)吗?

我只找到了如何跳过模型,但没有找到关于路径或控制器的信息。我在 activeadmin 上收到了很多警报,但我无法更改该代码。

例如,我为列 :user_type 行获得一个:(文件 app/admin/admin_users.rb)

0 投票
1 回答
595 浏览

ruby-on-rails - 按照建议添加急切负载后,Rails 子弹 gem 变慢

我添加了子弹 gem来建议我在 dev (Rails 4.0.2) 中的任何 N+1 查询它建议急切加载我正在显示其所有记录的模型的两个父关联。

在急切加载这些所属关联之一之前:

急切加载后:

此外,通过预先加载,浏览器会在控制台显示完成并且一段时间(大约 6 秒)没有更新后挂起。服务器生产没有这个冻结问题,但在这种情况下,急切加载仍然是个坏建议。

急切加载可能会变慢是否有意义?该视图确实访问(急切加载的)父记录。

此外,由于某种原因,子弹 gem 不显示调用堆栈。

0 投票
1 回答
459 浏览

ruby-on-rails - 如何使用 Ransack 避免 N+1 查询

我已经在我的一个项目中使用Ransack,并且还使用Bullet在我的控制器中发现了一些 N+1 查询。但是,我不太确定在使用 Ransack 时如何做到这一点。涉及两个模型,PatchImage。和一个Patch has_one Image。动作代码如下:

有什么想法吗?

0 投票
2 回答
7995 浏览

ruby-on-rails - Ruby on Rails - 子弹/N+1

在 Rails 4 上。我最近为我的开发环境安装了子弹 gem,以清除我的应用程序的 N+1 查询。相关型号:

提交:属于类别和用户。有很多 SubmissionDetails。

用户:有很多提交

类别:有很多提交。属于奖项。

奖项:有许多类别(以及通过类别提交)

SubmissionDetails:属于Submissions

在我提交的索引页面中,我有一个each do声明来显示当前用户所做的每个提交。

之后,我列出了有关提交的信息,包括其相关类别、奖项和提交详细信息。Bullet 说我对这个声明有 N+1 个问题:

每次我尝试添加.includes所有这三个模型时,它只会选择我列出的第一个(这并不奇怪)。我想当涉及多个模型时我需要走一条不同的路线——也许是一个加入声明?

(当我将 :category 设为第一项时,它会添加此通知):

(因此,我还需要在声明中包含一种使 Award 也适合其中的方法,该方法同样有许多通过类别提交的内容)。

所以假设我不能.includes为三种不同的模型做一个,还有另一种方法可以解决这个问题吗?谢谢。

0 投票
1 回答
1514 浏览

ruby-on-rails - Rails 4.1.2 无法安装子弹 gem

我已添加到我的 Gemfile 项目符号 gem:

在我的 development.rb 中我添加了:

当我尝试运行我的 rails 服务器时,我收到以下错误消息:

提前感谢您的帮助。

0 投票
1 回答
1706 浏览

ruby-on-rails - 使用 Bullet 和 RSpec gem 减少 n+1 查询

将 Bullet Gem 与 RSpec 一起使用的有效方法是什么?现在我觉得如果我将它与我当前的单元测试框架一起使用,我会收到很多通知或测试失败,因为测试本身中的 n+1 个查询与我的生产应用程序中发生的事情无关,例如检查价值或关联。因此,修复 n+1 故障不需要在我的控制器或模型上设置任何内容,而是需要在我的测试设置中设置一些内容以不引发该特定错误,并且我认为我的应用程序没有真正的性能改进。