{"id":8458,"date":"2016-06-17T10:54:27","date_gmt":"2016-06-17T10:54:27","guid":{"rendered":"https:\/\/dev.railscarma.com\/how-to-add-functionality-to-ruby-classes-with-decorators\/"},"modified":"2021-06-06T12:05:55","modified_gmt":"2021-06-06T12:05:55","slug":"comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/non-classe\/comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs\/","title":{"rendered":"Comment ajouter des fonctionnalit\u00e9s aux classes Ruby avec des d\u00e9corateurs"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8458\" class=\"elementor elementor-8458\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6fd970f1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6fd970f1\" 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-442169c1\" data-id=\"442169c1\" 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-766e4dc8 elementor-widget elementor-widget-text-editor\" data-id=\"766e4dc8\" 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<span style=\"font-size: medium;\">Les d\u00e9corateurs nous permettent d&#039;ajouter un comportement aux objets lors de l&#039;ex\u00e9cution et n&#039;affectent pas les autres objets de la classe. Les d\u00e9corateurs peuvent \u00eatre appliqu\u00e9s lorsque vous devez ajouter et supprimer dynamiquement des responsabilit\u00e9s \u00e0 une classe. Le mod\u00e8le d\u00e9corateur est une alternative utile \u00e0 la cr\u00e9ation de sous-classes. Ils donnent des fonctionnalit\u00e9s suppl\u00e9mentaires \u00e0 une classe tout en gardant la coh\u00e9rence de l&#039;API publique. Regardons un exemple pour comprendre l&#039;importance des Ruby Decorators. <\/span>\n\n<span style=\"font-size: medium;\">consid\u00e9rons que nous avons une classe Tattoo avec une m\u00e9thode de prix qui renvoie 300.<\/span>\n<blockquote><span style=\"font-size: medium;\">Classe Tattoo prix d\u00e9f 300 fin fin<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Nous allons maintenant ajouter une couleur suppl\u00e9mentaire en tant que fonctionnalit\u00e9, et le prix serait augment\u00e9 de 150<\/span>\n\n<span style=\"font-size: medium;\">Le moyen le plus simple consiste \u00e0 cr\u00e9er une sous-classe TattooWithColour qui renvoie 450 dans la m\u00e9thode price.<\/span>\n<blockquote><span style=\"font-size: medium;\">classe TattooWithColour &lt; Prix def tatouage 450 fin fin<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Ensuite, nous devons repr\u00e9senter un gros tatouage qui ajoute 200 au prix de nos tatouages. Nous pouvons repr\u00e9senter cela en utilisant une sous-classe BigTattoo de Tattoo.<\/span>\n<blockquote><span style=\"font-size: medium;\">classe BigTattoo &lt; Prix def tatouage 500 fin fin<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Nous pourrions \u00e9galement avoir des tatouages de plus grande taille et ils pourraient ajouter un prix suppl\u00e9mentaire \u00e0 notre BigTattoo. Si nous devions consid\u00e9rer que ces types de tatouages pourraient \u00eatre utilis\u00e9s avec des couleurs, nous devrions ajouter les sous-classes BigTattooWithColour et BiggerTattooWithColour.<\/span>\n\n<span style=\"font-size: medium;\">Avec cette m\u00e9thode, nous obtenons un total de 6 classes. Doublez m\u00eame ce nombre si vous souhaitez repr\u00e9senter ces combinaisons avec des motifs suppl\u00e9mentaires sur le tatouage.<\/span>\n<h1 class=\"western\"><a name=\"h.m63nvlo5wb6n\"><\/a> <span style=\"font-family: Calibri,serif;\"><span style=\"font-size: medium;\"><b>H\u00e9riter dynamiquement avec des modules<\/b><\/span><\/span><\/h1>\n<span style=\"font-family: Calibri,serif;\"><span style=\"font-size: medium;\">Pour simplifier notre code, nous pouvons utiliser des modules pour ajouter dynamiquement un comportement \u00e0 notre classe Tattoo. \u00c9crivons les modules ColourTattoo et BigTattoo pour cela.<\/span><\/span>\n<blockquote><span style=\"font-size: medium;\">module ColourTattoo prix def super + 150 fin fin<\/span><\/blockquote>\n<blockquote>module BigTattoo prix def super + 200 fin fin<\/blockquote>\n<span style=\"font-size: medium;\">Nous pouvons d\u00e9sormais \u00e9tendre dynamiquement nos objets de tatouage en utilisant la m\u00e9thode Object#extend.<\/span>\n\n<span style=\"font-size: medium;\">tatouage = Tattoo.new tatouage.extend(ColorTattoo) tatouage.extend(BigTattoo) <\/span>\n\n<span style=\"font-size: medium;\">Il s&#039;agit d&#039;une bonne am\u00e9lioration par rapport \u00e0 notre impl\u00e9mentation bas\u00e9e sur l&#039;h\u00e9ritage. Au lieu d&#039;avoir des sous-classes, nous n&#039;avons qu&#039;une seule classe et 3 modules. Si nous devions ajouter une conception suppl\u00e9mentaire \u00e0 l\u2019\u00e9quation, nous n\u2019aurions besoin que de quatre modules au lieu de 12 classes.<\/span>\n<h1 class=\"western\"><a name=\"h.wafqjdfxo3j0\"><\/a> <span style=\"font-size: medium;\"><b>Application du motif d\u00e9corateur<\/b><\/span><\/h1>\n<span style=\"font-size: medium;\">Cette solution bas\u00e9e sur des modules a grandement simplifi\u00e9 notre code, mais nous pouvons encore l&#039;am\u00e9liorer en utilisant le d\u00e9corateur. Nous consid\u00e9rerons un BiggerTatto comme \u00e9tant form\u00e9 en ajoutant deux fois 150 au co\u00fbt d&#039;un Tattoo.<\/span>\n\n<span style=\"font-size: medium;\">Nous ne pouvons pas faire cela avec notre approche bas\u00e9e sur les modules. Il serait tentant d&#039;appeler tattoo.extend(BigTattoo) deux fois pour obtenir BiggerTattoo. L&#039;extension du module une deuxi\u00e8me fois n&#039;a aucun effet lorsque nous en avons d\u00e9j\u00e0 utilis\u00e9 des \u00e9tendus.<\/span>\n\n<span style=\"font-size: medium;\">Si nous devions continuer \u00e0 utiliser la m\u00eame impl\u00e9mentation, nous aurions besoin d&#039;un module BiggerTattoo qui renvoie super + 300 comme co\u00fbt. Au lieu de cela, nous pouvons utiliser un d\u00e9corateur qui peut \u00eatre compos\u00e9 pour construire des objets complexes. Nous commen\u00e7ons par un d\u00e9corateur appel\u00e9 BigTattoo qui enveloppe un objet Tattoo.<\/span>\n<blockquote><span style=\"font-size: medium;\">class BigTatto def initialize(tattoo) @tattoo = fin du tatouage<\/span><\/blockquote>\n<blockquote>prix def @tattoo.price + 150 fin fin<\/blockquote>\n<span style=\"font-size: medium;\">Un plus grand tatouage peut d\u00e9sormais \u00eatre cr\u00e9\u00e9 en utilisant ce wrapper deux fois sur un objet Tattoo.<\/span>\n\n<span style=\"font-size: medium;\">tatouage = Tattoo.new big_tattoo= BigTattoo.new(tatouage) big_tattoo = BigTattoo.new(big_tattoo)<\/span>\n\n<span style=\"font-size: medium;\">Nous pouvons de la m\u00eame mani\u00e8re repr\u00e9senter un tatouage de couleur en utilisant un d\u00e9corateur TattooWithColour. En utilisant seulement trois classes, nous sommes d\u00e9sormais capables de repr\u00e9senter 6 types de tatouage.<\/span>\n\n<span style=\"font-size: medium;\">Avec une riche expertise dans toutes les facettes du d\u00e9veloppement Ruby On Rails, nous, chez <a href=\"https:\/\/www.railscarma.com\/fr\/\">Railscarma<\/a>, vous propose une large gamme de services pour vous aider \u00e0 mettre en \u0153uvre une strat\u00e9gie globale et personnalis\u00e9e pour communiquer avec vos prospects et vos clients au bon moment, via les bons canaux. Pour plus de d\u00e9tails<a href=\"\/fr\/contactez-nous\/\"> Contactez-nous.<\/a><\/span>\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-6c5bbaf8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6c5bbaf8\" 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-5f199228\" data-id=\"5f199228\" 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-9bd6b46 elementor-widget elementor-widget-heading\" data-id=\"9bd6b46\" 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\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4adf8479 elementor-widget elementor-widget-shortcode\" data-id=\"4adf8479\" 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=\"chargeur\"><\/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=\"Adresse e-mail\">\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=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/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\">Articles Similaires<\/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=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-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=\"joyau 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=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-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=\"pourquoi embaucher des d\u00e9veloppeurs 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=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs 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=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?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=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" 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=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n        Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-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=\"MEILLEURES ID\u00c9ES POUR LE D\u00c9VELOPPEMENT 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\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement 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>Les d\u00e9corateurs nous permettent d'ajouter un comportement aux objets en cours d'ex\u00e9cution sans affecter les autres objets de la classe. Les d\u00e9corateurs peuvent \u00eatre utilis\u00e9s lorsqu'il est n\u00e9cessaire d'ajouter ou de supprimer dynamiquement des responsabilit\u00e9s \u00e0 une classe. Le mod\u00e8le des d\u00e9corateurs est une alternative utile \u00e0 la cr\u00e9ation de sous-classes. Ils apportent des fonctionnalit\u00e9s suppl\u00e9mentaires \u00e0 une classe tout en conservant la ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Guide de correspondance des expressions rationnelles en Ruby (2026) avec exemples<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31904,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384,1],"tags":[],"class_list":["post-8458","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Add Functionality to Ruby Classes with Decorators - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Decorators allow us to add behavior to objects in runtime and don\u2019t affect other objects of the class. Decorators can be applied when you need to\" \/>\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\/fr\/blog\/non-classe\/comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Add Functionality to Ruby Classes with Decorators - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Decorators allow us to add behavior to objects in runtime and don\u2019t affect other objects of the class. Decorators can be applied when you need to\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/non-classe\/comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs\/\" \/>\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-06-17T10:54:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T12:05:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.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=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"How to Add Functionality to Ruby Classes with Decorators\",\"datePublished\":\"2016-06-17T10:54:27+00:00\",\"dateModified\":\"2021-06-06T12:05:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\"},\"wordCount\":593,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg\",\"articleSection\":[\"Technical Articles\",\"Uncategorized\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\",\"url\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\",\"name\":\"How to Add Functionality to Ruby Classes with Decorators - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg\",\"datePublished\":\"2016-06-17T10:54:27+00:00\",\"dateModified\":\"2021-06-06T12:05:55+00:00\",\"description\":\"Decorators allow us to add behavior to objects in runtime and don\u2019t affect other objects of the class. Decorators can be applied when you need to\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Add Functionality to Ruby Classes with Decorators\"}]},{\"@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\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\",\"@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":"Comment ajouter des fonctionnalit\u00e9s aux classes Ruby avec des d\u00e9corateurs - RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"Les d\u00e9corateurs nous permettent d&#039;ajouter un comportement aux objets lors de l&#039;ex\u00e9cution et n&#039;affectent pas les autres objets de la classe. Les d\u00e9corateurs peuvent \u00eatre appliqu\u00e9s lorsque vous en avez besoin","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\/fr\/blog\/non-classe\/comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs\/","og_locale":"fr_FR","og_type":"article","og_title":"How to Add Functionality to Ruby Classes with Decorators - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Decorators allow us to add behavior to objects in runtime and don\u2019t affect other objects of the class. Decorators can be applied when you need to","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/non-classe\/comment-ajouter-des-fonctionnalites-aux-classes-ruby-avec-des-decorateurs\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-06-17T10:54:27+00:00","article_modified_time":"2021-06-06T12:05:55+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"How to Add Functionality to Ruby Classes with Decorators","datePublished":"2016-06-17T10:54:27+00:00","dateModified":"2021-06-06T12:05:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/"},"wordCount":593,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg","articleSection":["Technical Articles","Uncategorized"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/","url":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/","name":"Comment ajouter des fonctionnalit\u00e9s aux classes Ruby avec des d\u00e9corateurs - RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg","datePublished":"2016-06-17T10:54:27+00:00","dateModified":"2021-06-06T12:05:55+00:00","description":"Les d\u00e9corateurs nous permettent d&#039;ajouter un comportement aux objets lors de l&#039;ex\u00e9cution et n&#039;affectent pas les autres objets de la classe. Les d\u00e9corateurs peuvent \u00eatre appliqu\u00e9s lorsque vous en avez besoin","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/06\/ror-development-1.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"How to Add Functionality to Ruby Classes with Decorators"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","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":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@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":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@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\/fr\/wp-json\/wp\/v2\/posts\/8458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=8458"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/8458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31904"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=8458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=8458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=8458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}