{"id":7879,"date":"2016-04-28T11:36:36","date_gmt":"2016-04-28T11:36:36","guid":{"rendered":"https:\/\/dev.railscarma.com\/volt-new-framework-ruby\/"},"modified":"2021-06-06T12:32:22","modified_gmt":"2021-06-06T12:32:22","slug":"volt-nuovo-quadro-rubino","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/volt-nuovo-quadro-rubino\/","title":{"rendered":"Volt \u2013 Un nuovo framework per Ruby"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"7879\" class=\"elementor elementor-7879\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4a33742 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4a33742\" 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-725e4982\" data-id=\"725e4982\" 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-ac9e64b elementor-widget elementor-widget-text-editor\" data-id=\"ac9e64b\" 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\tVolt \u2013 un nuovo Framework per Ruby in cui sia il lato server che quello client sono scritti in Ruby tramite OPAL (un compilatore da Ruby a JavaScript) in modo che lo sviluppatore possa scrivere applicazioni dinamiche senza scrivere un singolo codice JavaScript. Volt \u00e8 simile a Meteor ma non ha tutte le parti di Meteor.\n\n<strong>La configurazione di base per Volt Framework<\/strong>\n\nInstalliamo Volt e creiamo un&#039;app vuota. Assicurati di avere installato Ruby (&gt;2.1.0) e Ruby Gems.\n\n<strong>Installa Volt Gem:<\/strong>\n<blockquote>gemma installa volt<\/blockquote>\nPossiamo creare un nuovo progetto utilizzando la gemma volt:\n<blockquote>volt nuovo progetto_campione<\/blockquote>\nAccendi il server web:\n<blockquote>bundle di server exec volt<\/blockquote>\nPossiamo accedere alla console Volt con:\n<blockquote>bundle console exec volt<\/blockquote>\n<strong>Il compilatore Opal<\/strong>\n\nLe applicazioni Volt eseguono Ruby sia sul frontend che sul backend. Pertanto l&#039;istruzione puts in un&#039;azione del controller viene visualizzata nella finestra del browser e non nella console del terminale. E anche scrivere il codice Ruby per il front-end con Volt \u00e8 molto semplice. Il compilatore opale traduce Ruby in JavaScript. La cosa sorprendente \u00e8 che non c&#039;\u00e8 alcun processo di compilazione da seguire e nessuno strumento di creazione da installare. Quando esegui volt server, tutto avviene in background. Non \u00e8 necessario alcun aggiornamento o riavvio quando si apportano modifiche al codice e ai dati.\n\n<strong>Chiamare un avviso JavaScript con Ruby<\/strong>\n<blockquote># Chiamata di funzioni JavaScript nel modulo Ruby Classe principale MainController &lt; Volt::ModelController # Chiamato dal front-end quando viene caricata la rotta &quot;todos&quot;. def todos alert &#039;totes stupiscono&#039; end end end<\/blockquote>\n<strong>Sincronizzazione semplice tramite modelli reattivi<\/strong>\n\nConcentrati maggiormente su questa parte quando impari il volt. Volt::Model agisce come oggetti Ruby simili a hash che si sincronizzano simultaneamente tra il front-end e il back-end. Di solito, gli aggiornamenti al modello avvengono automaticamente. Il concetto di &quot;negozi&quot; in Volt viene utilizzato per sincronizzare i dati dell&#039;applicazione in forme persistenti e non persistenti. E anche un mezzo uniforme per sincronizzare i dati tra archiviazione locale, MangoDB, cookie, sessioni e parametri URL.\n\n<strong>Controlliamo come creare un&#039;app di chat in tempo reale di Ruby e HTML:<\/strong>\n<blockquote># Crea un modello dati persistente. Questo viene archiviato in MongoDB. class ChatMessage &lt; Volt::Model end<\/blockquote>\n<strong>Visualizza codice:<\/strong>\n<blockquote>&lt;:Corpo&gt; <ul> {{ _chat_messages.each fa |msg| }}<ul> <button>X<\/button> {{ msg._testo }}<\/ul> {{ FINE }}<\/ul><\/blockquote>\n<strong>Supporto completo per endpoint HTTP<\/strong>\n\nVolt non \u00e8 solo per il framework in tempo reale. Fornisce inoltre flussi di lavoro per lo sviluppo di applicazioni HTTP tradizionali. Controlla un esempio da GitHub:\n<blockquote>Le rotte # per l&#039;endpoint HTTP ottengono &#039;\/simple_http&#039;, controller: &#039;simple_http&#039;, azione: &#039;index&#039; get &#039;\/simple_http\/store&#039;, controller: &#039;simple_http&#039;, azione: &#039;mostra&#039; post &#039;\/simple_http\/upload&#039;, controller : &#039;simple_http&#039;, azione: &#039;upload&#039; # Esempio di classe controller SimpleHttpController &lt; Volt::HttpController def index render text: &#039;questo \u00e8 solo del testo&#039; end def show render text: \u201cMi hai preso a \u201d \u201c#{store._simple_http_tests .first._name}\u201d end def upload caricato = params[:file][:tempfile] File.open(&#039;tmp\/uploaded_file&#039;, &#039;wb&#039;) do |f| f.write(uploaded.read) end render text: &#039;Grazie per il caricamento&#039; end end<\/blockquote>\nFonte: Datamelon\n<div id=\"s3gt_translate_tooltip_mini\" class=\"s3gt_translate_tooltip_mini_box\" style=\"background: initial ! important; border: initial ! important; border-radius: initial ! important; border-spacing: initial ! important; border-collapse: initial ! important; direction: ltr ! important; flex-direction: initial ! important; font-weight: initial ! important; height: initial ! important; letter-spacing: initial ! important; min-width: initial ! important; max-width: initial ! important; min-height: initial ! important; max-height: initial ! important; margin: auto ! important; outline: initial ! important; padding: initial ! important; position: absolute; table-layout: initial ! important; text-align: initial ! important; text-shadow: initial ! important; width: initial ! important; word-break: initial ! important; word-spacing: initial ! important; overflow-wrap: initial ! important; box-sizing: initial ! important; display: initial ! important; color: inherit ! important; font-size: 13px ! important; font-family: X-LocaleSpecific,sans-serif,Tahoma,Helvetica ! important; line-height: 13px ! important; vertical-align: top ! important; white-space: inherit ! important; left: 102px; top: 2774px; opacity: 0.8;\">\n<div id=\"s3gt_translate_tooltip_mini_logo\" class=\"s3gt_translate_tooltip_mini\" title=\"Traduci il testo selezionato\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_sound\" class=\"s3gt_translate_tooltip_mini\" title=\"Giocare\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_copy\" class=\"s3gt_translate_tooltip_mini\" title=\"Copia il testo negli Appunti\"><\/div>\n<\/div>\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-20930685 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"20930685\" 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-34c62552\" data-id=\"34c62552\" 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-557484ec elementor-widget elementor-widget-heading\" data-id=\"557484ec\" 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\">Iscriviti per gli ultimi aggiornamenti<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c1b75fc elementor-widget elementor-widget-shortcode\" data-id=\"1c1b75fc\" 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=\"caricatore\"><\/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=\"c645c7487f\">\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=\"Indirizzo 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=\"Nome\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"sottoscrivi\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"it\"\/><\/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\">Articoli correlati<\/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=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-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=\"gemma di 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=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-kaminari\/?related_post_from=37277\">\r\n        Gemma Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-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=\"perch\u00e9 assumere sviluppatori di Ruby on Rails nel 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=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-ruby-on-rails\/?related_post_from=30627\">\r\n        Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/importanza-dellarchitettura-software-nello-sviluppo-di-software-aziendale\/?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=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" 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=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/importanza-dellarchitettura-software-nello-sviluppo-di-software-aziendale\/?related_post_from=36250\">\r\n        Importanza dell&#039;architettura software nello sviluppo di software aziendale  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: i migliori IDE per lo sviluppo di Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/ruby-ide-le-migliori-idee-per-lo-sviluppo-di-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=\"LE MIGLIORI IDEE PER LO SVILUPPO DI 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: i migliori IDE per lo sviluppo di Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/ruby-ide-le-migliori-idee-per-lo-sviluppo-di-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE: i migliori IDE per lo sviluppo di 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>Volt &#8211; a new Framework for Ruby&nbsp;where both the server and client sides are written in Ruby via OPAL (a ruby to JavaScript compiler) so developer can write dynamic applications without writing a single JavaScript code. Volt is similar to Meteor but it doesn&#8217;t have all the portions of Meteor. The Basic Setup for Volt &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/it\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Soluzioni di integrazione API di terze parti in Ruby on Rails<\/span> Leggi altro \"<\/a><\/p>","protected":false},"author":1,"featured_media":31929,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[668,669],"class_list":["post-7879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-ruby-framework","tag-volt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Volt - A New Framework for Ruby<\/title>\n<meta name=\"description\" content=\"Volt - A New Framework for Ruby where both the server and client sides are written in Ruby via OPAL (a ruby to JavaScript compiler).\" \/>\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\/it\/blog\/articoli-tecnici\/volt-nuovo-quadro-rubino\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Volt - A New Framework for Ruby\" \/>\n<meta property=\"og:description\" content=\"Volt - A New Framework for Ruby where both the server and client sides are written in Ruby via OPAL (a ruby to JavaScript compiler).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/volt-nuovo-quadro-rubino\/\" \/>\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-04-28T11:36:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T12:32:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.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=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Volt \u2013 A New Framework for Ruby\",\"datePublished\":\"2016-04-28T11:36:36+00:00\",\"dateModified\":\"2021-06-06T12:32:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/\"},\"wordCount\":526,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg\",\"keywords\":[\"ruby framework\",\"volt\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/\",\"name\":\"Volt - A New Framework for Ruby\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg\",\"datePublished\":\"2016-04-28T11:36:36+00:00\",\"dateModified\":\"2021-06-06T12:32:22+00:00\",\"description\":\"Volt - A New Framework for Ruby where both the server and client sides are written in Ruby via OPAL (a ruby to JavaScript compiler).\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Volt \u2013 A New Framework for Ruby\"}]},{\"@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\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\",\"@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":"Volt - Un nuovo framework per Ruby","description":"Volt - Un nuovo framework per Ruby in cui sia il lato server che quello client sono scritti in Ruby tramite OPAL (un compilatore da Ruby a JavaScript).","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\/it\/blog\/articoli-tecnici\/volt-nuovo-quadro-rubino\/","og_locale":"it_IT","og_type":"article","og_title":"Volt - A New Framework for Ruby","og_description":"Volt - A New Framework for Ruby where both the server and client sides are written in Ruby via OPAL (a ruby to JavaScript compiler).","og_url":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/volt-nuovo-quadro-rubino\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-04-28T11:36:36+00:00","article_modified_time":"2021-06-06T12:32:22+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Volt \u2013 A New Framework for Ruby","datePublished":"2016-04-28T11:36:36+00:00","dateModified":"2021-06-06T12:32:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/"},"wordCount":526,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg","keywords":["ruby framework","volt"],"articleSection":["Technical Articles"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/","name":"Volt - Un nuovo framework per Ruby","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg","datePublished":"2016-04-28T11:36:36+00:00","dateModified":"2021-06-06T12:32:22+00:00","description":"Volt - Un nuovo framework per Ruby in cui sia il lato server che quello client sono scritti in Ruby tramite OPAL (un compilatore da Ruby a JavaScript).","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/04\/volt_framework.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/volt-new-framework-ruby\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Volt \u2013 A New Framework for Ruby"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Societ\u00e0 di sviluppo Ruby on Rails specializzata nello sviluppo offshore","description":"RailsCarma \u00e8 una societ\u00e0 di sviluppo Ruby on Rails a Bangalore. Siamo specializzati nello sviluppo offshore di Ruby on Rails con sede negli Stati Uniti e in India. Assumi sviluppatori esperti di Ruby on Rails per la migliore esperienza 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":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@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":"amministratore","image":{"@type":"ImageObject","inLanguage":"it-IT","@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\/it\/wp-json\/wp\/v2\/posts\/7879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/comments?post=7879"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts\/7879\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media\/31929"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media?parent=7879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/categories?post=7879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/tags?post=7879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}