{"id":6512,"date":"2015-06-09T07:19:52","date_gmt":"2015-06-09T07:19:52","guid":{"rendered":"https:\/\/dev.railscarma.com\/ruby-module-article\/"},"modified":"2025-12-18T11:24:47","modified_gmt":"2025-12-18T11:24:47","slug":"articulo-del-modulo-ruby","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/articulo-del-modulo-ruby\/","title":{"rendered":"The Basics of Creating and Using Ruby Modules"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"6512\" class=\"elementor elementor-6512\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-54fe0c61 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"54fe0c61\" 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-44a03edd\" data-id=\"44a03edd\" 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-7ae3bfac elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"7ae3bfac\" 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<p style=\"text-align: justify;\"><span style=\"font-size: medium;\"><strong>Ruby on Rails<\/strong> is a wonderful open source full-stack web application framework favoring convention over configuration.&nbsp;&nbsp;<\/span><span style=\"font-size: medium;\">Con componentes reutilizables y f\u00e1cilmente configurables que normalmente se utilizan para crear aplicaciones, crear aplicaciones en Rails es m\u00e1s r\u00e1pido y sencillo, lo que se traduce en una mayor productividad y crecimiento empresarial.&nbsp;<\/span><span style=\"font-size: medium;\">Est\u00e1 ganando terreno entre los desarrolladores, ya que es flexible, escalable y f\u00e1cil para los desarrolladores web escribir y mantener aplicaciones.&nbsp;<\/span><\/p><p style=\"text-align: justify;\"><span style=\"font-size: medium;\"><strong><a href=\"https:\/\/rubyonrails.org\/\">Ruby on Rails<\/a><\/strong> Pone \u00e9nfasis en el uso de patrones y principios de ingenier\u00eda conocidos para reducir la carga de trabajo al crear aplicaciones web.&nbsp;<\/span><span style=\"font-size: medium;\">Aunque existen m\u00faltiples m\u00e9todos para resolver un desaf\u00edo de programaci\u00f3n, Ruby profesa confiar en patrones com\u00fanmente utilizados que hacen que los sitios web Rails sean m\u00e1s f\u00e1ciles de mantener y actualizar.&nbsp;<\/span><span style=\"font-size: medium;\">Las bibliotecas de c\u00f3digo abierto con bloques m\u00e1s peque\u00f1os de c\u00f3digo Rails que resuelven problemas particulares se utilizan com\u00fanmente para reducir la sobrecarga de desarrollo.&nbsp;<\/span><span style=\"font-size: medium;\">Con la ayuda de dichos bloques de c\u00f3digo, los desarrolladores pueden insertar gemas estables y bien probadas en lugar de perder tiempo escribiendo el mismo tipo de c\u00f3digos. Una de las herramientas m\u00e1s poderosas en la caja de herramientas de un programador Ruby es el m\u00f3dulo. <b>Rub\u00ed&nbsp;<\/b><\/span><span style=\"font-size: medium;\"><b>Modules<\/b> provide a structure to collect Ruby classes, methods, and constants into a single, separately named and defined unit.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: medium;\">Esto es \u00fatil para evitar conflictos con clases, m\u00e9todos y constantes existentes, y tambi\u00e9n para poder agregar (mezclar) la funcionalidad de los m\u00f3dulos en sus clases.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>Creating a Module in Ruby<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\"><font size=\"3\">Creating a module is similar to creating a class, except you use the module keyword instead of the class keyword.<\/font><\/p>\n<pre style=\"text-align: justify;\">module MyFirstModule\n  def say_hello\n    puts \"Hello\"\n  end\nend<font size=\"3\"><\/font><\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">Modules cannot be instantiated. To use a module, you must either include or extend it within a class.<\/font><\/p>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>Using include and extend<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\">\n<\/p><ul>\n<li><font size=\"3\"><b>incluir<\/b><\/font><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><font size=\"3\">Mixes the module\u2019s methods in as instance methods of the class.<\/font><\/p>\n<p style=\"text-align: justify;\">\n<\/p><ul>\n<li><font size=\"3\"><b>ampliar<\/b><\/font><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><font size=\"3\">Mixes the module\u2019s methods in as class methods of the class.<\/font><\/p>\n<p style=\"text-align: justify;\"><font size=\"3\"><b>Example<\/b><\/font><\/p>\n<pre style=\"text-align: justify;\">module ReusableModule\n  def module_method\n    puts \"Module Method: Hi there!\"\n  end\nend\n\nclass ClassThatIncludes\n  include ReusableModule\nend\n\nclass ClassThatExtends\n  extend ReusableModule\nend\n\nputs \"Include\"\nClassThatIncludes.new.module_method\n# =&gt; \"Module Method: Hi there!\"\n\nputs \"Extend\"\nClassThatExtends.module_method\n# =&gt; \"Module Method: Hi there!\"<\/pre>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>Other Important Concepts About Modules in Ruby<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\"><font size=\"3\"><b>1. Method Lookup Basics:<\/b><\/font><\/p>\n<pre style=\"text-align: justify;\">module M\n  def report\n    puts \"'report' method in module M\"\n  end\nend\n\nclass C\n  include M\nend\n\nclass D &lt; C\nend<br>\n<b><\/b>obj = D.new\nobj.report<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\"><b>Producci\u00f3n:<\/b><\/font><\/p>\n<pre style=\"text-align: justify;\"><font size=\"3\">'report' method in module M<\/font><\/pre>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>How Method Lookup Works<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\"><font size=\"3\">When a Ruby object receives a message (method call), it searches for the method in this order:<\/font><\/p>\n<ol>\n<li>The objects class (D)<\/li>\n<li><font size=\"3\">Modules included in the class (D)<\/font><\/li>\n<li><font size=\"3\">The superclass (C)<\/font><\/li>\n<li><font size=\"3\">Modules included in the superclass (M)<\/font><\/li>\n<li><font size=\"3\">Continue up the inheritance chain<\/font><\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><font size=\"3\">In this case:<\/font><\/p>\n<p style=\"text-align: justify;\">\n<\/p><ul>\n<li><font size=\"3\">D does not define report<\/font><\/li>\n<li><span style=\"font-size: 16px;\">C does not define report<\/span><\/li>\n<li><span style=\"font-size: 16px;\">C includes module M<\/span><\/li>\n<li><span style=\"font-size: 16px;\">M defines report, so Ruby executes it<\/span><\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>2. Defining the Same Method More Than Once<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\"><font size=\"3\">If a method is defined multiple times, the last definition takes precedence. This applies to both classes and modules.<\/font><\/p>\n<pre style=\"text-align: justify;\">module InterestBearing\n  def calculate_interest\n    puts \"Placeholder! We're in module InterestBearing.\"\n  end\nend\n\nclass BankAccount\n  include InterestBearing\n\n  def calculate_interest\n    puts \"Placeholder! We're in class BankAccount.\"\n    puts \"And we're overriding the calculate_interest method!\"\n  end\nend\n\naccount = BankAccount.new\naccount.calculate_interest<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">Producci\u00f3n:<\/font><\/p>\n<pre style=\"text-align: justify;\"><font size=\"3\">Placeholder! We're in class BankAccount.<br><\/font><font size=\"3\">And we're overriding the calculate_interest method!<\/font><\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">The class method overrides the module method.<\/font><\/p>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>3. Mixing in Multiple Ruby Modules with the Same Method Name<\/b><\/font><\/h2>\n<pre style=\"text-align: justify;\">module M\n  def report\n    puts \"'report' method in module M\"\n  end\nend\n\nmodule N\n  def report\n    puts \"'report' method in module N\"\n  end\nend\n\nclass C\n  include M\n  include N\nend\n\nc = C.new\nc.report<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">Producci\u00f3n:<\/font><\/p>\n<pre style=\"text-align: justify;\"><font size=\"3\">'report' method in module N<\/font><\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">The last included module wins because it appears first in the method lookup path.<\/font><\/p>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>4. Including a Ruby Module More Than Once<\/b><\/font><\/h2>\n<pre style=\"text-align: justify;\">class C\n  include M\n  include N\n  include M\nend\n\nc = C.new\nc.report<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">Producci\u00f3n:<\/font><\/p>\n<pre style=\"text-align: justify;\"><font size=\"3\">'report' method in module N<\/font><\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\"><b>Explanation<\/b><\/font><\/p>\n<p style=\"text-align: justify;\"><font size=\"3\">Re-including a module has no effect if the module is already in the lookup path. Ruby does not move it to the top again. The most recently included new module (N) still takes precedence.<\/font><\/p>\n<h2 style=\"text-align: justify;\"><font size=\"3\"><b>5. Using super with Ruby Modules<\/b><\/font><\/h2>\n<p style=\"text-align: justify;\"><font size=\"3\">The super keyword allows you to call the next method up the method lookup chain.<\/font><\/p>\n<pre style=\"text-align: justify;\">module M\n  def report\n    puts \"'report' method in module M\"\n  end\nend\n\nclass C\n  include M\n\n  def report\n    puts \"'report' method in class C\"\n    puts \"About to trigger the next higher-up report method...\"\n    super\n    puts \"Back from the 'super' call.\"\n  end\nend\n\nc = C.new\nc.report<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\">Producci\u00f3n:<\/font><\/p>\n<pre style=\"text-align: justify;\">'report' method in class C\nAbout to trigger the next higher-up report method...\n'report' method in module M\nBack from the 'super' call.<\/pre>\n<p style=\"text-align: justify;\"><font size=\"3\"><b>What Happens Here<\/b><\/font><\/p>\n<p style=\"text-align: justify;\">\n<\/p><ul>\n<li><font size=\"3\">Ruby first executes report in class C<\/font><\/li>\n<li><span style=\"font-size: 16px;\">super calls the next report method in the lookup chain (from module M)<\/span><\/li>\n<li><span style=\"font-size: 16px;\">Control then returns back to the class method<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-size: medium;\"><a href=\"https:\/\/www.railscarma.com\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>RielesCarma<\/strong><\/a> ha estado trabajando en RoR desde su etapa inicial y con una s\u00f3lida fuerza laboral capacitada en RoR, ha crecido hasta convertirse en un nombre altamente confiable en consultor\u00eda, arquitectura, construcci\u00f3n, administraci\u00f3n y extensi\u00f3n de Ruby on Rails para empresas de todo el mundo.&nbsp;<\/span><\/p>\n<p style=\"text-align: justify;\"><em><b>Leer m\u00e1s :&nbsp;<\/b><\/em><\/p>\n<ul>\n<li><a href=\"\/es\/blog\/articulos-tecnicos\/implementando-tinymce-en-ruby-on-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">Implementaci\u00f3n de TinyMCE en Ruby on Rails<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"\/es\/blog\/articulos-tecnicos\/comprender-el-complemento-de-canalizacion-de-activos\/\" target=\"_blank\" rel=\"noopener noreferrer\">Comprensi\u00f3n del complemento de canalizaci\u00f3n de activos<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"\/es\/blog\/articulos-tecnicos\/polymorphic-associations-with-active-record\/\" target=\"_blank\" rel=\"noopener noreferrer\">Asociaciones polim\u00f3rficas con registro activo<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"\/es\/blog\/articulos-tecnicos\/una-forma-sencilla-de-aumentar-el-rendimiento-de-tu-aplicacion-rails-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Una forma sencilla de aumentar el rendimiento de su aplicaci\u00f3n Rails<\/a><\/li>\n<\/ul>\n<p><a href=\"\/es\/contactenos\/\">P\u00f3ngase en contacto con nosotros.<\/a><\/p>\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-20ee20d1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"20ee20d1\" 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-266aac31\" data-id=\"266aac31\" 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-201a5cf elementor-widget elementor-widget-heading\" data-id=\"201a5cf\" 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-3a85013 elementor-widget elementor-widget-shortcode\" data-id=\"3a85013\" 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=\"Extracci\u00f3n de datos en rieles mediante procesamiento CSV\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/raspado-de-datos-en-rieles-mediante-el-procesamiento-de-csv\/?related_post_from=31591\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-768x288.png 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=\"Extracci\u00f3n de datos en rieles mediante procesamiento CSV\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/raspado-de-datos-en-rieles-mediante-el-procesamiento-de-csv\/?related_post_from=31591\">\r\n        Extracci\u00f3n de datos en rieles mediante procesamiento CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Realice llamadas de voz a trav\u00e9s de aplicaciones web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/realizar-llamadas-de-voz-a-traves-de-aplicaciones-web-ruby-on-rails\/?related_post_from=31309\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-768x288.png 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=\"Realice llamadas de voz a trav\u00e9s de aplicaciones web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/realizar-llamadas-de-voz-a-traves-de-aplicaciones-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Realice llamadas de voz a trav\u00e9s de aplicaciones web 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>Ruby on Rails is a wonderful open source full-stack web application framework favoring convention over configuration.&nbsp;&nbsp;With reusable, easily configurable components normally used for creating applications, building applications in Rails is faster and easier resulting in improved productivity and business growth.&nbsp;It is gaining traction with developers as it is flexible, scalable, and easy for web developers &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/es\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Soluciones de integraci\u00f3n de API de terceros en Ruby on Rails<\/span> Leer m\u00e1s \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":32034,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[385,455,384],"tags":[389,421,636,382,637],"class_list":["post-6512","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-management","category-rails-3","category-technical-articles","tag-rails","tag-ror","tag-ruby-module","tag-ruby-on-rails","tag-ruby-on-rails-development-company"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Basics of Creating and Using Ruby Modules - RailsCarma<\/title>\n<meta name=\"description\" content=\"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.\" \/>\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\/articulo-del-modulo-ruby\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Basics of Creating and Using Ruby Modules - RailsCarma\" \/>\n<meta property=\"og:description\" content=\"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/articulo-del-modulo-ruby\/\" \/>\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=\"2015-06-09T07:19:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T11:24:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.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=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"The Basics of Creating and Using Ruby Modules\",\"datePublished\":\"2015-06-09T07:19:52+00:00\",\"dateModified\":\"2025-12-18T11:24:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/\"},\"wordCount\":631,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg\",\"keywords\":[\"rails\",\"ror\",\"ruby module\",\"Ruby on rails\",\"ruby on rails development company\"],\"articleSection\":[\"Articles on Management\",\"Rails 3\",\"Technical Articles\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/\",\"name\":\"The Basics of Creating and Using Ruby Modules - RailsCarma\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg\",\"datePublished\":\"2015-06-09T07:19:52+00:00\",\"dateModified\":\"2025-12-18T11:24:47+00:00\",\"description\":\"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Basics of Creating and Using Ruby Modules\"}]},{\"@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":"The Basics of Creating and Using Ruby Modules - RailsCarma","description":"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.","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\/articulo-del-modulo-ruby\/","og_locale":"es_ES","og_type":"article","og_title":"The Basics of Creating and Using Ruby Modules - RailsCarma","og_description":"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.","og_url":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/articulo-del-modulo-ruby\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2015-06-09T07:19:52+00:00","article_modified_time":"2025-12-18T11:24:47+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.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":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"The Basics of Creating and Using Ruby Modules","datePublished":"2015-06-09T07:19:52+00:00","dateModified":"2025-12-18T11:24:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/"},"wordCount":631,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg","keywords":["rails","ror","ruby module","Ruby on rails","ruby on rails development company"],"articleSection":["Articles on Management","Rails 3","Technical Articles"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/","name":"The Basics of Creating and Using Ruby Modules - RailsCarma","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg","datePublished":"2015-06-09T07:19:52+00:00","dateModified":"2025-12-18T11:24:47+00:00","description":"Learn the basics of creating and using modules in Ruby on Rails to organize code improve reuse and keep applications clean and maintainable.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/06\/blog_rc3.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ruby-module-article\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"The Basics of Creating and Using Ruby Modules"}]},{"@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\/6512","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=6512"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/6512\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media\/32034"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media?parent=6512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/categories?post=6512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/tags?post=6512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}