{"id":7773,"date":"2016-03-30T11:45:23","date_gmt":"2016-03-30T11:45:23","guid":{"rendered":"https:\/\/dev.railscarma.com\/get-more-out-of-queries-in-rails-using-bullet-in-just-3-steps\/"},"modified":"2021-06-06T12:30:08","modified_gmt":"2021-06-06T12:30:08","slug":"aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos\/","title":{"rendered":"Obtenga m\u00e1s beneficios de las consultas en Rails usando Bullet en solo 3 pasos"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"7773\" class=\"elementor elementor-7773\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6c9f2594 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6c9f2594\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6c021b6c\" data-id=\"6c021b6c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5716e1a8 elementor-widget elementor-widget-text-editor\" data-id=\"5716e1a8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\u00bfAlguna vez has abierto un armario y todo su contenido se te ha ca\u00eddo encima? En el entorno de programaci\u00f3n, esto se denomina &quot;c\u00f3digo espagueti&quot;. Este es el tipo de c\u00f3digos que est\u00e1n tan confusos que tan pronto como haces un peque\u00f1o cambio, todo comienza a desmoronarse. Por mucho que sea importante escribir buenos c\u00f3digos, es igualmente importante mantenerlos limpios. Pero cuando se desarrolla una aplicaci\u00f3n a gran escala, resulta dif\u00edcil mantener los c\u00f3digos limpios y organizados. En este art\u00edculo, leer\u00e1 para sacar m\u00e1s provecho de las consultas en Rails usando Bullet en solo 3 pasos. Para proyectos a gran escala con complejidad adicional, la refactorizaci\u00f3n manual de c\u00f3digo se convierte en un gran riesgo y requiere mucho tiempo. Por ello, se recomienda utilizar herramientas de terceros como Bullet Gem para el mantenimiento, seguridad y optimizaci\u00f3n de los c\u00f3digos. El complemento Bullet, desarrollado por Richard Huang para Ruby on Rails, se utiliz\u00f3 por primera vez en 2009. Y desde entonces, ha demostrado ser una joya poderosa que ayuda a monitorear las aplicaciones Ruby on Rails para mejorar el rendimiento. Bullet Gem ayuda a reducir la cantidad de consultas que realiza una aplicaci\u00f3n. Tambi\u00e9n ayuda a encontrar <strong>N+1<\/strong> consultas en la aplicaci\u00f3n durante el modo de desarrollo mostrando las notificaciones en el navegador.\n\n<img decoding=\"async\" class=\"aligncenter wp-image-7776 size-full\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/image_bullet_gem.jpg\" alt=\"imagen_bullet_gem\" width=\"589\" height=\"271\" \/>\n\n<strong>N+1<\/strong> El problema de consulta es una situaci\u00f3n en la que el desarrollador realiza llamadas adicionales a la base de datos cuando quiere obtener datos asociados espec\u00edficos una y otra vez. Por ejemplo,\n<blockquote>2.2.1 :005 &gt; Mensaje.todos.cada uno {|mensaje| mensaje.conversaci\u00f3n.remitente_id}<\/blockquote>\nEste ejemplo obtiene todos los mensajes, luego itera cada uno de esos registros e intenta obtener una conversaci\u00f3n de mensajes desde la base de datos. La soluci\u00f3n a este problema es el complemento Bullet, que ayuda a monitorear las consultas de la aplicaci\u00f3n. Notifica cualquier escenario N+1 y las cargas ansiosas no utilizadas. Otra soluci\u00f3n com\u00fan para esto es utilizar m\u00e9todos de carga ansiosos: precarga, incluye, ansioso_carga. Ejemplos de los siguientes m\u00e9todos: -\n<blockquote>2.2.1 :007 &gt; Mensaje.incluye(:conversaci\u00f3n).referencias(:conversaciones).cada uno { |mensaje| mensaje.conversaci\u00f3n.sender_id } 2.2.1 :008 &gt; Mensaje.eager_load(:conversaci\u00f3n).cada uno { |mensaje| mensaje.conversaci\u00f3n.sender_id } 2.2.1 :009 &gt; Mensaje.precarga(:conversaci\u00f3n).all.each { |mensaje| message.conversation.sender_id } La carga ansiosa es la soluci\u00f3n al problema de la consulta N+1, lo que garantiza que no terminemos ejecutando consultas innecesarias mientras recorremos un objeto.<\/blockquote>\n<h4><strong>Uso y configuraci\u00f3n de Bullet Gem:\u00a0<\/strong><\/h4>\nEl siguiente ejemplo muestra dos modelos; Mensaje y Conversaci\u00f3n, en el que un Mensaje consta de muchas Conversaciones. El fragmento de c\u00f3digo debe ser: -\n<blockquote>En app\/controllers\/messages_controller.rb clase MessagesController &amp;lt; ApplicationController def index @messages = Message.all end end En app\/views\/messages\/index.html.erb\n\n&lt;h1&gt;Mensajes&lt;\/h1&gt;\n\n&lt;% @messages.each do |message| %&gt;\n\n&lt;%message.conversations.each do |conversation|%&gt;\n\n&lt;ul class=&quot;&rdquo;message_link&rdquo;&quot;&gt;\n\n&lt;li&gt;&lt;%=link_to conversation.sender_id, conversation_path(conversation)%&gt;&lt;\/li&gt;\n\n&lt;\/ul&gt;\n\n&lt;%end%&gt;\n\n&lt;% end %&gt;<\/blockquote>\n<strong>B\u00e1sicamente, Bullet gem ayuda a resolver el problema n+1 en la aplicaci\u00f3n Rails.<\/strong>\n<h4>Obtenga m\u00e1s beneficios de las consultas en Rails usando Bullet en solo 3 pasos<\/h4>\nPaso 1: \u2013 Agregue la gema Bullet al archivo gem y ejecute la instalaci\u00f3n del paquete.\n<blockquote># Para la gema de optimizaci\u00f3n de c\u00f3digo &#039;bullet&#039;, grupo: [:desarrollo,:prueba]<\/blockquote>\nLa gema solo debe usarse en el entorno de desarrollo, ya que no querr\u00e1s que los usuarios de la aplicaci\u00f3n reciban alertas sobre los problemas de consulta N+1. Paso 2: \u2013 La vi\u00f1eta debe estar habilitada en la aplicaci\u00f3n. Simplemente agregar la gema de bala no notificar\u00e1 las consultas incorrectas. La configuraci\u00f3n se realiza en config\/environments\/development.rb.\n<blockquote>config.after_initialize do Bullet.enable = true Bullet.alert = true Bullet.bullet_logger = true Bullet.console = true Bullet.rails_logger = true Bullet.unused_eager_loading_enable = false end Bullet.enable: habilita la gema Bullet, de lo contrario no haces nada Bullet.alert: muestra una alerta de JavaScript en el navegador Bullet.bullet_logger: inicia sesi\u00f3n en el archivo de registro de Bullet (Rails.root\/log\/bullet.log) Bullet.rails_logger: agrega advertencias directamente al registro de Rails<\/blockquote>\nPaso 3: reinicie el servidor. Despu\u00e9s del paso 2, ver\u00edamos una ventana emergente de alerta de JavaScript en el navegador con la consulta N+1 detectada. La alerta contendr\u00eda el archivo que contiene el problema y las sugerencias sobre lo que se podr\u00eda hacer para solucionar el problema. En Controlador,\n<blockquote>clase MessagesController &lt; ApplicationController def \u00edndice @messages = Message.includes(:conversaciones) fin fin<\/blockquote>\n<strong>Referencias: -<\/strong>\n\nENLACE DE GITHUB: \u2013 <a href=\"https:\/\/github.com\/flyerhzm\/bullet\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/flyerhzm\/bullet<\/a>\n\nNuestros desarrolladores est\u00e1n bien versados en hacer todo tipo de <a href=\"https:\/\/www.railscarma.com\/es\/contratar-desarrollador-de-ruby-on-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">Trabajo de desarrollo de Ruby on Rails.<\/a> y manejo de cualquier tipo de proyecto. <a href=\"\/es\/contactenos\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cont\u00e1ctenos<\/a> para saber m\u00e1s sobre nuestras habilidades de desarrollo y los proyectos que podemos manejar.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-70987f92 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"70987f92\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-71c6c633\" data-id=\"71c6c633\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-61d1550a elementor-widget elementor-widget-heading\" data-id=\"61d1550a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Suscr\u00edbete para recibir las \u00faltimas actualizaciones<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e7f0ce0 elementor-widget elementor-widget-shortcode\" data-id=\"3e7f0ce0\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"cargador\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Direcci\u00f3n de correo electr\u00f3nico\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nombre\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Suscribir\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"es\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Art\u00edculos Relacionados<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"gema kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-kaminari\/?related_post_from=37277\">\r\n        Gema Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"por qu\u00e9 contratar desarrolladores de Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-ruby-on-rails\/?related_post_from=30627\">\r\n        \u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/importancia-de-la-arquitectura-de-software-en-el-desarrollo-de-software-empresarial\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/importancia-de-la-arquitectura-de-software-en-el-desarrollo-de-software-empresarial\/?related_post_from=36250\">\r\n        Importancia de la arquitectura de software en el desarrollo de software empresarial  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/ruby-ide-las-mejores-ideas-para-el-desarrollo-de-ruby-on-rails\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"MEJORES IDES PARA EL DESARROLLO DE RUBY ON RAILS\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/ruby-ide-las-mejores-ideas-para-el-desarrollo-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Have you ever opened a closet only to have all the inside contents fall all over you? In the programming setting, this is called as \u201cspaghetti code\u201d. These are the kind of codes that are so jumbled that as soon as you make a little change, everything starts falling apart. As much as it is &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) con Ejemplos<\/span> Leer m\u00e1s \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31937,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[665,572],"class_list":["post-7773","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-bullet-gem","tag-gem"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Get More Out of Queries in Rails Using Bullet in Just 3 Steps<\/title>\n<meta name=\"description\" content=\"It is recommended to use third party tools like Bullet Gem for the maintenance, security and optimization of codes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Get More Out of Queries in Rails Using Bullet in Just 3 Steps\" \/>\n<meta property=\"og:description\" content=\"It is recommended to use third party tools like Bullet Gem for the maintenance, security and optimization of codes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-30T11:45:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T12:30:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Get More Out of Queries in Rails Using Bullet in Just 3 Steps\",\"datePublished\":\"2016-03-30T11:45:23+00:00\",\"dateModified\":\"2021-06-06T12:30:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/\"},\"wordCount\":770,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg\",\"keywords\":[\"bullet gem\",\"gem\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/\",\"url\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/\",\"name\":\"Get More Out of Queries in Rails Using Bullet in Just 3 Steps\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg\",\"datePublished\":\"2016-03-30T11:45:23+00:00\",\"dateModified\":\"2021-06-06T12:30:08+00:00\",\"description\":\"It is recommended to use third party tools like Bullet Gem for the maintenance, security and optimization of codes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get More Out of Queries in Rails Using Bullet in Just 3 Steps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Obtenga m\u00e1s beneficios de las consultas en Rails usando Bullet en solo 3 pasos","description":"Se recomienda utilizar herramientas de terceros como Bullet Gem para el mantenimiento, seguridad y optimizaci\u00f3n de c\u00f3digos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos\/","og_locale":"es_ES","og_type":"article","og_title":"Get More Out of Queries in Rails Using Bullet in Just 3 Steps","og_description":"It is recommended to use third party tools like Bullet Gem for the maintenance, security and optimization of codes.","og_url":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/aproveche-al-maximo-las-consultas-en-rails-usando-bullet-en-solo-3-pasos\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-03-30T11:45:23+00:00","article_modified_time":"2021-06-06T12:30:08+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Get More Out of Queries in Rails Using Bullet in Just 3 Steps","datePublished":"2016-03-30T11:45:23+00:00","dateModified":"2021-06-06T12:30:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/"},"wordCount":770,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg","keywords":["bullet gem","gem"],"articleSection":["Technical Articles"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/","url":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/","name":"Obtenga m\u00e1s beneficios de las consultas en Rails usando Bullet en solo 3 pasos","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg","datePublished":"2016-03-30T11:45:23+00:00","dateModified":"2021-06-06T12:30:08+00:00","description":"Se recomienda utilizar herramientas de terceros como Bullet Gem para el mantenimiento, seguridad y optimizaci\u00f3n de c\u00f3digos.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/03\/rc.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/de\/blog\/technical-articles\/holen-sie-mit-bullet-in-nur-3-schritten-mehr-aus-abfragen-in-rails-heraus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Get More Out of Queries in Rails Using Bullet in Just 3 Steps"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Empresa de desarrollo Ruby on Rails especializada en desarrollo offshore","description":"RailsCarma es una empresa de desarrollo de Ruby on Rails en Bangalore. Nos especializamos en el desarrollo offshore de Ruby on Rails con sede en EE. UU. e India. Contrate desarrolladores experimentados de Ruby on Rails para disfrutar de la mejor experiencia web.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RielesCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administraci\u00f3n","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/7773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/comments?post=7773"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/7773\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media\/31937"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media?parent=7773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/categories?post=7773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/tags?post=7773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}