{"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":"so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/de\/blog\/nicht-kategorisiert\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/","title":{"rendered":"So f\u00fcgen Sie Ruby-Klassen mit Dekoratoren Funktionalit\u00e4t hinzu"},"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;\">Dekoratoren erm\u00f6glichen es uns, Objekten zur Laufzeit Verhalten hinzuzuf\u00fcgen, ohne andere Objekte der Klasse zu beeinflussen. Dekoratoren k\u00f6nnen angewendet werden, wenn Sie einer Klasse dynamisch Verantwortung hinzuf\u00fcgen oder entfernen m\u00fcssen. Das Dekoratormuster ist eine hilfreiche Alternative zum Erstellen von Unterklassen. Sie verleihen einer Klasse zus\u00e4tzliche Funktionalit\u00e4t und sorgen gleichzeitig daf\u00fcr, dass die \u00f6ffentliche API konsistent bleibt. Schauen wir uns ein Beispiel an, um die Bedeutung von Ruby Decorators zu verstehen. <\/span>\n\n<span style=\"font-size: medium;\">Stellen Sie sich vor, wir haben eine Tattoo-Klasse mit einer Preismethode, die 300 zur\u00fcckgibt.<\/span>\n<blockquote><span style=\"font-size: medium;\">Klasse Tattoo def Preis 300 Ende Ende<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Jetzt werden wir als Feature eine zus\u00e4tzliche Farbe hinzuf\u00fcgen und den Preis um 150 erh\u00f6hen<\/span>\n\n<span style=\"font-size: medium;\">Der einfachste Weg besteht darin, eine TattooWithColor-Unterklasse zu erstellen, die in der Preismethode 450 zur\u00fcckgibt.<\/span>\n<blockquote><span style=\"font-size: medium;\">Klasse TattooWithColor &lt; Tattoo def Preis 450 Ende Ende<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Als n\u00e4chstes m\u00fcssen wir ein gro\u00dfes Tattoo darstellen, das den Preis unserer Tattoos um 200 erh\u00f6ht. Wir k\u00f6nnen dies mithilfe einer BigTattoo-Unterklasse von Tattoo darstellen.<\/span>\n<blockquote><span style=\"font-size: medium;\">Klasse BigTattoo &lt; Tattoo def Preis 500 Ende Ende<\/span><\/blockquote>\n<span style=\"font-size: medium;\">Wir k\u00f6nnten auch gr\u00f6\u00dfere Tattoos anfertigen lassen, wodurch unser BigTattoo m\u00f6glicherweise noch teurer wird. Wenn wir bedenken w\u00fcrden, dass diese T\u00e4towierungstypen mit Farben verwendet werden k\u00f6nnten, m\u00fcssten wir die Unterklassen BigTattooWithColor und BiggerTattooWithColor hinzuf\u00fcgen.<\/span>\n\n<span style=\"font-size: medium;\">Mit dieser Methode erhalten wir insgesamt 6 Klassen. Verdoppeln Sie sogar die Zahl, wenn Sie diese Kombinationen mit zus\u00e4tzlichen Designs auf dem Tattoo darstellen m\u00f6chten.<\/span>\n<h1 class=\"western\"><a name=\"h.m63nvlo5wb6n\"><\/a> <span style=\"font-family: Calibri,serif;\"><span style=\"font-size: medium;\"><b>Dynamisches Erben mit Modulen<\/b><\/span><\/span><\/h1>\n<span style=\"font-family: Calibri,serif;\"><span style=\"font-size: medium;\">Um unseren Code zu vereinfachen, k\u00f6nnen wir Module verwenden, um unserer Tattoo-Klasse dynamisch Verhalten hinzuzuf\u00fcgen. Schreiben wir hierf\u00fcr die Module ColourTattoo und BigTattoo.<\/span><\/span>\n<blockquote><span style=\"font-size: medium;\">Modul ColourTattoo def Preis Super + 150 Ende Ende<\/span><\/blockquote>\n<blockquote>Modul BigTattoo def Preis super + 200 Ende Ende<\/blockquote>\n<span style=\"font-size: medium;\">Jetzt k\u00f6nnen wir unsere Tattoo-Objekte mithilfe der Methode Object#extend dynamisch erweitern.<\/span>\n\n<span style=\"font-size: medium;\">tattoo = Tattoo.new tattoo.extend(ColorTattoo) tattoo.extend(BigTattoo) <\/span>\n\n<span style=\"font-size: medium;\">Dies ist eine gute Verbesserung gegen\u00fcber unserer vererbungsbasierten Implementierung. Anstelle von Unterklassen haben wir nur eine Klasse und drei Module. Wenn wir der Gleichung zus\u00e4tzliches Design hinzuf\u00fcgen m\u00fcssten, br\u00e4uchten wir nur vier Module statt zw\u00f6lf Klassen.<\/span>\n<h1 class=\"western\"><a name=\"h.wafqjdfxo3j0\"><\/a> <span style=\"font-size: medium;\"><b>Anwenden des Dekorationsmusters<\/b><\/span><\/h1>\n<span style=\"font-size: medium;\">Diese modulbasierte L\u00f6sung hat unseren Code erheblich vereinfacht, wir k\u00f6nnen ihn jedoch mithilfe des Decorators noch verbessern. Wir gehen davon aus, dass ein BiggerTatto dadurch entsteht, dass die Kosten f\u00fcr ein Tattoo zweimal um 150 erh\u00f6ht werden.<\/span>\n\n<span style=\"font-size: medium;\">Mit unserem modulbasierten Ansatz k\u00f6nnen wir dies nicht erreichen. Es w\u00e4re verlockend, tattoo.extend(BigTattoo) zweimal aufzurufen, um BiggerTattoo zu erhalten. Das zweite Erweitern des Moduls hat keine Auswirkung, wenn wir bereits Erweiterungsmodule verwendet haben.<\/span>\n\n<span style=\"font-size: medium;\">Wenn wir weiterhin dieselbe Implementierung verwenden w\u00fcrden, br\u00e4uchten wir ein BiggerTattoo-Modul, das als Kosten Super + 300 zur\u00fcckgibt. Stattdessen k\u00f6nnen wir einen kombinierbaren Dekorator verwenden, um komplexe Objekte zu erstellen. Wir beginnen mit einem Dekorator namens BigTattoo, der ein Tattoo-Objekt umh\u00fcllt.<\/span>\n<blockquote><span style=\"font-size: medium;\">Klasse BigTatto def initialize(tattoo) @tattoo = Tattoo Ende<\/span><\/blockquote>\n<blockquote>def preis @tattoo.price + 150 end end<\/blockquote>\n<span style=\"font-size: medium;\">Ein gr\u00f6\u00dferes Tattoo kann jetzt erstellt werden, indem dieser Wrapper zweimal auf einem Tattoo-Objekt verwendet wird.<\/span>\n\n<span style=\"font-size: medium;\">tattoo = Tattoo.new big_tattoo= BigTattoo.new(tattoo) big_tattoo = BigTattoo.new(big_tattoo)<\/span>\n\n<span style=\"font-size: medium;\">Auf \u00e4hnliche Weise k\u00f6nnen wir Farbt\u00e4towierungen mit einem TattooWithColor-Dekorator darstellen. Mit nur drei Klassen sind wir nun in der Lage, 6 Arten von T\u00e4towierungen darzustellen.<\/span>\n\n<span style=\"font-size: medium;\">Mit umfassender Expertise in allen Facetten der Ruby On Rails-Entwicklung sind wir bei <a href=\"https:\/\/www.railscarma.com\/de\/\">Railscarma<\/a>, bieten Ihnen eine breite Palette von Dienstleistungen an, die Sie bei der Umsetzung einer umfassenden personalisierten Strategie unterst\u00fctzen, um mit Ihren Interessenten und Kunden zur richtigen Zeit und \u00fcber die richtigen Kan\u00e4le zu kommunizieren. F\u00fcr mehr Details<a href=\"\/de\/kontaktiere-uns\/\"> Kontaktiere uns.<\/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\">Abonnieren Sie die neuesten Updates<\/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=\"Lader\"><\/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=\"E-Mail-Adresse\">\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=\"Name\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Abonnieren\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"de\"\/><\/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\">zusammenh\u00e4ngende Posts<\/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=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?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=\"Kaminari-Juwel\" 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=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?related_post_from=37277\">\r\n        Kaminari-Juwel  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?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=\"Warum sollte man im Jahr 2022 Ruby-on-Rails-Entwickler einstellen?\" 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=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?related_post_from=30627\">\r\n        Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/bedeutung-der-softwarearchitektur-bei-der-entwicklung-von-unternehmenssoftware\/?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=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" 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=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/bedeutung-der-softwarearchitektur-bei-der-entwicklung-von-unternehmenssoftware\/?related_post_from=36250\">\r\n        Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/ruby-idee-die-besten-ideen-fur-die-ruby-on-rails-entwicklung\/?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=\"BESTE IDEEN F\u00dcR DIE RUBY ON RAILS-ENTWICKLUNG\" 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: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/ruby-idee-die-besten-ideen-fur-die-ruby-on-rails-entwicklung\/?related_post_from=36125\">\r\n        Ruby IDE: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung  <\/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>Decorators erm\u00f6glichen es uns, Objekten zur Laufzeit Verhalten hinzuzuf\u00fcgen, das sich nicht auf andere Objekte der Klasse auswirkt. Dekoratoren k\u00f6nnen angewendet werden, wenn Sie einer Klasse dynamisch Verantwortung hinzuf\u00fcgen oder entziehen m\u00fcssen. Das Decorator-Muster ist eine hilfreiche Alternative zur Erstellung von Unterklassen. Sie verleihen einer Klasse zus\u00e4tzliche Funktionalit\u00e4t, w\u00e4hrend die ...<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) mit Beispielen<\/span> Weiterlesen \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\/de\/blog\/nicht-kategorisiert\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/blog\/nicht-kategorisiert\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\" \/>\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=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\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\":\"de\",\"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\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\",\"@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":"So f\u00fcgen Sie Ruby-Klassen mit Dekoratoren Funktionalit\u00e4t hinzu \u2013 RailsCarma \u2013 Ruby on Rails Development Company, spezialisiert auf Offshore-Entwicklung","description":"Dekoratoren erm\u00f6glichen es uns, Objekten zur Laufzeit Verhalten hinzuzuf\u00fcgen, ohne andere Objekte der Klasse zu beeinflussen. Dekorateure k\u00f6nnen bei Bedarf angewendet werden","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\/de\/blog\/nicht-kategorisiert\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/","og_locale":"de_DE","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\/de\/blog\/nicht-kategorisiert\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/","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":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"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":"de","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":"So f\u00fcgen Sie Ruby-Klassen mit Dekoratoren Funktionalit\u00e4t hinzu \u2013 RailsCarma \u2013 Ruby on Rails Development Company, spezialisiert auf Offshore-Entwicklung","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":"Dekoratoren erm\u00f6glichen es uns, Objekten zur Laufzeit Verhalten hinzuzuf\u00fcgen, ohne andere Objekte der Klasse zu beeinflussen. Dekorateure k\u00f6nnen bei Bedarf angewendet werden","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/de\/blog\/uncategorized\/so-fugen-sie-ruby-klassen-mithilfe-von-dekoratoren-funktionalitat-hinzu\/"]}]},{"@type":"ImageObject","inLanguage":"de","@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 \u2013 Ruby on Rails-Entwicklungsunternehmen, spezialisiert auf Offshore-Entwicklung","description":"RailsCarma ist ein Ruby on Rails-Entwicklungsunternehmen in Bangalore. Wir sind auf die Offshore-Ruby-on-Rails-Entwicklung mit Sitz in den USA und Indien spezialisiert. Stellen Sie erfahrene Ruby on Rails-Entwickler f\u00fcr das ultimative Web-Erlebnis ein.","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":"de"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"SchienenCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@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":"Administrator","image":{"@type":"ImageObject","inLanguage":"de","@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\/de\/wp-json\/wp\/v2\/posts\/8458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/comments?post=8458"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts\/8458\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media\/31904"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media?parent=8458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/categories?post=8458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/tags?post=8458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}