{"id":6511,"date":"2015-05-05T06:11:32","date_gmt":"2015-05-05T06:11:32","guid":{"rendered":"https:\/\/dev.railscarma.com\/polymorphic-associations-with-active-record\/"},"modified":"2021-06-06T16:35:36","modified_gmt":"2021-06-06T16:35:36","slug":"asociaciones-polimorficas-con-registro-activo-2","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/asociaciones-polimorficas-con-registro-activo-2\/","title":{"rendered":"Asociaciones polim\u00f3rficas con registro activo"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"6511\" class=\"elementor elementor-6511\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1b837340 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1b837340\" 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-3a26caa5\" data-id=\"3a26caa5\" 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-5ef47efb elementor-widget elementor-widget-text-editor\" data-id=\"5ef47efb\" 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 class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Ruby on Rails, un marco de aplicaci\u00f3n web excepcionalmente productivo, est\u00e1 optimizado para el deleite del programador y una producci\u00f3n sostenible. Favorece la convenci\u00f3n sobre la configuraci\u00f3n y, por lo tanto, le permite escribir c\u00f3digo atractivo sin preocuparse demasiado por la conformaci\u00f3n.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\"> Hay una demanda creciente de <a href=\"https:\/\/www.railscarma.com\/es\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Ruby on Rails<\/strong><\/a> debido a su velocidad y agilidad en la creaci\u00f3n de aplicaciones con productividad mejorada y tiempo de entrega reducido. <\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Las asociaciones de registros activos son una de las caracter\u00edsticas m\u00e1s importantes de Rails. La asociaci\u00f3n polim\u00f3rfica es parte de estas asociaciones. Con la asociaci\u00f3n polim\u00f3rfica, un modelo puede pertenecer a m\u00e1s de un modelo, en una sola asociaci\u00f3n.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">\u00bfPor qu\u00e9 necesitamos asociaciones entre modelos? Porque simplifican y facilitan las operaciones comunes en su c\u00f3digo. Con las asociaciones de Active Record, podemos optimizar estas (y otras) operaciones dici\u00e9ndole a Rails de forma declarativa que existe una conexi\u00f3n entre los dos modelos. <\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">En Rails, un\u00a0<\/span><span style=\"font-size: medium;\"><i>asociaci\u00f3n<\/i><\/span><span style=\"font-size: medium;\">\u00a0es una conexi\u00f3n entre dos modelos Active Record. Las asociaciones se implementan mediante llamadas de estilo macro, de modo que pueda agregar funciones a sus modelos de forma declarativa. Por ejemplo, al declarar que un modelo pertenece a otro, le indica a Rails que mantenga la informaci\u00f3n de clave primaria y clave externa entre instancias de los dos modelos, y tambi\u00e9n obtiene una serie de m\u00e9todos de utilidad agregados a su modelo. Rails admite seis tipos de asociaciones:<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Veamos c\u00f3mo implementarlo. Primero necesitaremos crear un modelo de documento.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">modelo Rails g Nombre del documento: cadena wpl_article_id: entero<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">wpl_article_type:cadena<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">clase Documento &lt; ActiveRecord::Base<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">pertenece_a :wpl_article, :polymorphic =&gt; verdadero<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><strong><span style=\"font-size: medium;\">La interfaz:<\/span><\/strong><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Usando una asociaci\u00f3n polim\u00f3rfica, necesitamos definir solo un pertenece_a y agregar un par de columnas relacionadas a la tabla de la base de datos subyacente. A partir de ese momento, cualquier clase de nuestro sistema puede tener documentos adjuntos (lo que la convertir\u00eda en wpl_article) sin necesidad de alterar el esquema de la base de datos ni el propio modelo de documento.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">No hay una clase (o m\u00f3dulo) wpl_article en nuestra aplicaci\u00f3n. Llamamos a la asociaci\u00f3n :wpl_article porque describe con precisi\u00f3n la interfaz de los objetos que se asociar\u00e1n de esta manera. El nombre <\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">:wpl_article aparecer\u00e1 nuevamente en el otro lado de la asociaci\u00f3n:<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">clase Software &lt; ActiveRecord::Base<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">has_one :documento, :as =&gt; :wpl_article<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-family: Calibri,serif;\"><span style=\"font-size: medium;\">clase Hardware &lt; ActiveRecord::Base<\/span><\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">has_one :documento, :as =&gt; :wpl_article<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">clase Investigaci\u00f3n &lt; ActiveRecord::Base<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">has_one :documento, :as =&gt; :wpl_article<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Las columnas de la base de datos: (nombre_asociaci\u00f3n)_tipo: almacena el tipo de<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">asociaciones polimorfas.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">clase CreateDocuments &lt; ActiveRecord::Migraci\u00f3n<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">definitivamente cambio<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">create_table :los documentos no |t|<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">t.cadena: nombre<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">t.integer :wpl_article_id # como hemos mencionado \u201cbelongs_to<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">:wpl_article, :polymorphic =&gt; true\u201d en el modelo de documento. Esto es un<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">convenci\u00f3n de esquema que asociacion_nombre_tipo y<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Association_name_id ser\u00e1, en consecuencia, &quot;wpl_article&quot;.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">t.cadena: wpl_article_type<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">fin<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Software, Hardware e Investigaci\u00f3n tienen un documento a trav\u00e9s de una asociaci\u00f3n polim\u00f3rfica wpl_article Aqu\u00ed podemos ver c\u00f3mo se modela. El documento est\u00e1 asociado con tres modelos de software, hardware e investigaci\u00f3n en una sola asociaci\u00f3n a trav\u00e9s de wpl_article, lo que ayuda a lograr la asociaci\u00f3n.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Cargando entorno de desarrollo (Rails 4.1.1)<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247: 001 &gt; documento = Documento.create (nombre: &#039;Copa Mundial)<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; # &lt;Document id: 1, wpl_article_type: nil, wpl_article_id: nil, name:<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">\u201cCopa del Mundo\u201d&gt;<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247: 002 &gt; software = Software.create(nombre: &#039;cricinfo.com&#039;)<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; #<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247: 003 &gt; document.update_attribute(:wpl_article, software)<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; # &lt;Document id: 1, wpl_article_type: \u2018Software\u2019, wpl_article_id: 1,<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">nombre: \u201cCopa Mundial\u201d&gt;<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; verdadero<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247 :004 &gt; Software.apellido.nombre.del.documento<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; \u201cCopa del mundo\u201d<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247 :005 &gt;Documento.\u00faltimo<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">=&gt; # &lt;Document id: 1, wpl_article_type: nil, wpl_article_id: nil, name:<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">\u201cCopa del Mundo\u201d&gt;<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">2.0.0-p247 :006 &gt;Documento.\u00faltimo.wpl_art\u00edculo<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">recuperar\u00e1 la recuperaci\u00f3n seg\u00fan wpl_article_id y wpl_article_type<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\">Railscarma proporciona soluciones Ruby on Rails de extremo a extremo desde el desarrollo, implementaci\u00f3n, administraci\u00f3n, monitoreo y soporte de sus aplicaciones.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><span style=\"font-size: medium;\"> Al trabajar en la aplicaci\u00f3n Ruby desde sus etapas iniciales, RailsCarma le brinda la ventaja de su experiencia pionera para ayudarlo a obtener soluciones comerciales r\u00e1pidas y simplificadas.<\/span><\/p>\n<p class=\"western\" style=\"text-align: justify;\"><em>Leer m\u00e1s :\u00a0<\/em><\/p>\n\n<ul>\n \t<li class=\"entry-title\"><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 \t<li class=\"entry-title\"><a href=\"\/es\/blog\/articulos-tecnicos\/articulo-del-modulo-ruby\/\" target=\"_blank\" rel=\"noopener noreferrer\">Los conceptos b\u00e1sicos de la creaci\u00f3n y el uso de m\u00f3dulos en Rails<\/a><\/li>\n \t<li class=\"entry-title\"><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 \t<li class=\"entry-title\"><a href=\"\/es\/blog\/articulos-tecnicos\/scaling-applications-multiple-database-connection-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ampliaci\u00f3n de aplicaciones con conexi\u00f3n de m\u00faltiples bases de datos<\/a><\/li>\n<\/ul>\n<a href=\"\/es\/contactenos\/\">P\u00f3ngase en contacto con nosotros.<\/a>\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-375412cf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"375412cf\" 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-6f933511\" data-id=\"6f933511\" 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-11e794eb elementor-widget elementor-widget-heading\" data-id=\"11e794eb\" 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-5b43758f elementor-widget elementor-widget-shortcode\" data-id=\"5b43758f\" 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>An exceptionally productive web application framework, Ruby on Rails is optimized for programmer delight and sustainable output. It favours convention over configuration and thus lets you write beautiful code without worrying too much about the conformation. There is an increasing demand for Ruby on Rails because of its speed and agility in building applications with &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":32037,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[632,634,635,382],"class_list":["post-6511","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-active-record-association","tag-polymorphic-associations","tag-polymorphic-associations-in-rails","tag-ruby-on-rails"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Polymorphic Associations With Active Record - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Active Record Associations are one of the most important features of Rails. Polymorphic association is part of these associations.\" \/>\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\/asociaciones-polimorficas-con-registro-activo-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Polymorphic Associations With Active Record - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Active Record Associations are one of the most important features of Rails. Polymorphic association is part of these associations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/asociaciones-polimorficas-con-registro-activo-2\/\" \/>\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-05-05T06:11:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T16:35:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.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\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Polymorphic Associations With Active Record\",\"datePublished\":\"2015-05-05T06:11:32+00:00\",\"dateModified\":\"2021-06-06T16:35:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/\"},\"wordCount\":722,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg\",\"keywords\":[\"Articles on Active Record Association\",\"Polymorphic Associations\",\"Polymorphic Associations in rails\",\"Ruby on rails\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/\",\"url\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/\",\"name\":\"Polymorphic Associations With Active Record - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg\",\"datePublished\":\"2015-05-05T06:11:32+00:00\",\"dateModified\":\"2021-06-06T16:35:36+00:00\",\"description\":\"Active Record Associations are one of the most important features of Rails. Polymorphic association is part of these associations.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Polymorphic Associations With Active Record\"}]},{\"@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":"Asociaciones polim\u00f3rficas con registro activo - RailsCarma - Empresa de desarrollo Ruby on Rails especializada en desarrollo offshore","description":"Las asociaciones de registros activos son una de las caracter\u00edsticas m\u00e1s importantes de Rails. La asociaci\u00f3n polim\u00f3rfica es parte de estas asociaciones.","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\/asociaciones-polimorficas-con-registro-activo-2\/","og_locale":"es_ES","og_type":"article","og_title":"Polymorphic Associations With Active Record - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Active Record Associations are one of the most important features of Rails. Polymorphic association is part of these associations.","og_url":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/asociaciones-polimorficas-con-registro-activo-2\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2015-05-05T06:11:32+00:00","article_modified_time":"2021-06-06T16:35:36+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.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\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Polymorphic Associations With Active Record","datePublished":"2015-05-05T06:11:32+00:00","dateModified":"2021-06-06T16:35:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/"},"wordCount":722,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg","keywords":["Articles on Active Record Association","Polymorphic Associations","Polymorphic Associations in rails","Ruby on rails"],"articleSection":["Technical Articles"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/","url":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/","name":"Asociaciones polim\u00f3rficas con registro activo - RailsCarma - Empresa de desarrollo Ruby on Rails especializada en desarrollo offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg","datePublished":"2015-05-05T06:11:32+00:00","dateModified":"2021-06-06T16:35:36+00:00","description":"Las asociaciones de registros activos son una de las caracter\u00edsticas m\u00e1s importantes de Rails. La asociaci\u00f3n polim\u00f3rfica es parte de estas asociaciones.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/05\/blog_rc4.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/asociaciones-polimorficas-con-registro-activo-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Polymorphic Associations With Active Record"}]},{"@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\/6511","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=6511"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/6511\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media\/32037"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media?parent=6511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/categories?post=6511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/tags?post=6511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}