{"id":8756,"date":"2016-09-06T12:56:40","date_gmt":"2016-09-06T12:56:40","guid":{"rendered":"https:\/\/dev.railscarma.com\/acts_as_votable\/"},"modified":"2021-06-06T11:46:31","modified_gmt":"2021-06-06T11:46:31","slug":"agisce_come_votabile","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/agisce_come_votabile\/","title":{"rendered":"Come utilizzare la gemma Acts_As_Votable?"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8756\" class=\"elementor elementor-8756\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-12639522 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"12639522\" 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-4e907a3a\" data-id=\"4e907a3a\" 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-709e7325 elementor-widget elementor-widget-text-editor\" data-id=\"709e7325\" 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<strong>Agisce_Come_Votabile<\/strong> \u00e8 una gemma di rubino scritta appositamente per i modelli Rails\/ActiveRecord e questa gemma consente a qualsiasi modello di essere votato su voto positivo\/negativo come\/non mi piace, ecc. Consente a qualsiasi modello di essere votato in ambiti arbitrari utilizzando questa gemma possiamo votare qualsiasi modello. i voti non devono provenire da un utente, possono provenire da qualsiasi modello (come un gruppo o un team) e fornisce una sintassi facile da scrivere\/leggere.\n\n<strong>Installazione di gemme<\/strong>\n<blockquote>gemma &#039;agisce_come_votabile&#039;<\/blockquote>\nAggiungi la riga sopra in Gemfile ed esegui l&#039;installazione del bundle Versioni Ruby e Rails supportate\n<blockquote>Ruby 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1.0 Rotaie 3.0, 3.1, 3.2, 4.0, 4.1+<\/blockquote>\nQuesta gemma utilizza la tabella dei voti per salvare tutte le informazioni sul voto. Per generare la migrazione dei voti, esegui i comandi seguenti\n<blockquote>i binari generano act_as_votable:migration rake db:migrate<\/blockquote>\nPer valutare qualsiasi modello \u00e8 sufficiente utilizzare &quot;acts_as_votable&quot; nel modello\n\n<strong>Esempio:<\/strong>\n<blockquote>class Article &lt; ActiveRecord::Base act_as_votable end @article = Article.new(:name =&gt; &#039;il mio nuovo articolo&#039;) @article.save @article.liked_by @user @article.votes_for.size # =&gt; 1<\/blockquote>\nDi seguito sono riportati alcuni esempi di votazione. Tutti questi inviti sono validi e accettabili\n<blockquote>@article.liked_by @user1 @article.downvote_from @user2 @article.vote_by :voter =&gt; @user3 @article.vote_by :voter =&gt; @user4, :vote =&gt; &#039;mi piace&#039; @article.vote_by :voter =&gt; @user5 , :vote =&gt; &#039;Non mi piace&#039;<\/blockquote>\nPer impostazione predefinita, tutti i voti sono positivi, quindi @user3 ha espresso un voto &quot;buono&quot; per @article. @user1, @user3 e @user4 hanno votato tutti a favore di @article. @user2 e @user5 dall&#039;altro hanno votato contro @article. Qualsiasi parola funziona per esprimere un voto a favore o contro post come Positivo\/Negativo, Su\/Gi\u00f9, Mi piace\/Non mi piace... ecc., sono applicabili anche i flag booleani vero e falso.\n\n<strong>Esempi con ambiti:<\/strong>\n\nUsando questa gemma possiamo aggiungere uno scopo al nostro voto\n<blockquote># voti positivi\/mi piace @article.liked_by @user1, :vote_scope =&gt; &#039;classifica&#039; @article.vote_by :voter =&gt; @user3, :vote_scope =&gt; &#039;classifica&#039; @article.vote_by :voter =&gt; @user5, :vote =&gt; &#039;mi piace&#039;, :vote_scope =&gt; &#039;classifica&#039; # voti negativi\/Non mi piace @article.downvote_from @user2, :vote_scope =&gt; &#039;classifica&#039; @article.vote_by :voter =&gt; @user2, :vote =&gt; &#039;Non mi piace&#039; , :vote_scope =&gt; &#039;classifica&#039; # sommali! @article.find_votes_for(:vote_scope =&gt; &#039;classifica&#039;).size # =&gt; 5 @article.get_likes(:vote_scope =&gt; &#039;classifica&#039;).size # =&gt; 3 @article.get_upvotes(:vote_scope =&gt; &#039;classifica&#039; ).size # =&gt; 3 @article.get_dislikes(:vote_scope =&gt; &#039;rank&#039;).size # =&gt; 2 @article.get_downvotes(:vote_scope =&gt; &#039;rank&#039;).size # =&gt; 2 Il modello votabile # pu\u00f2 essere votato in ambiti diversi dallo stesso utente @article.vote_by :voter =&gt; @user1, :vote_scope =&gt; &#039;settimana&#039; @article.vote_by :voter =&gt; @user1, :vote_scope =&gt; &#039;mese&#039; @article.votes_for.size # =&gt; 2 @article.find_votes_for(:vote_scope =&gt; &#039;settimana&#039;).size # =&gt; 1 @article.find_votes_for(:vote_scope =&gt; &#039;mese&#039;).size # =&gt; 1<\/blockquote>\nAggiungendo pesi ai nostri voti possiamo aggiungere peso al nostro voto. Il valore predefinito \u00e8 1.\n<blockquote># voti positivi\/mi piace @article.liked_by @user1, :vote_weight =&gt; 1 @article.vote_by :voter =&gt; @user3, :vote_weight =&gt; 2 @article.vote_by :voter =&gt; @user5, :vote =&gt; &#039;mi piace &#039;, :vote_scope =&gt; &#039;classifica&#039;, :vote_weight =&gt; 3 # voti negativi\/Non mi piace @article.downvote_from @user2, :vote_scope =&gt; &#039;classifica&#039;, :vote_weight =&gt; 1 @article.vote_by :voter =&gt; @user2 , :vote =&gt; &#039;Non mi piace&#039;, :vote_scope =&gt; &#039;classifica&#039;, :vote_weight =&gt; 3 # contali! @article.find_votes_for(:vote_scope =&gt; &#039;rank&#039;).sum(:vote_weight) # =&gt; 6 @article.get_likes(:vote_scope =&gt; &#039;rank&#039;).sum(:vote_weight) # =&gt; 6 @article.get_upvotes (:vote_scope =&gt; &#039;rank&#039;).sum(:vote_weight) # =&gt; 6 @article.get_dislikes(:vote_scope =&gt; &#039;rank&#039;).sum(:vote_weight) # =&gt; 4 @article.get_downvotes(:vote_scope = &gt; &#039;classifica&#039;).sum(:voto_peso) # =&gt; 4<\/blockquote>\nL&#039;Elettore che possiamo chiedere ai nostri elettori di agire_come_votante per fornire alcune funzionalit\u00e0 di riserva.\n\n<strong>Per esempio<\/strong>\n<blockquote>class Utente &lt; ActiveRecord::Base act_as_voter end @user.likes @article @article.votes.size # =&gt; 1 @article.likes.size # =&gt; 1 @article.dislikes.size # =&gt; 0<\/blockquote>\nPer verificare se un elettore ha votato per un modello, possiamo usare voted_for?. possiamo verificare come ha votato l&#039;elettore utilizzando voted_as_when_voted_for, possiamo anche verificare se l&#039;elettore ha votato a favore o contro. Alias per i metodi voted_up_on? \u00e8 votato_up_for? , \u00e8 piaciuto? e votato_down_on? \u00e8 stato votato_down_for?, non mi \u00e8 piaciuto? inoltre possiamo ottenere un elenco di tutti gli oggetti per i quali un utente ha votato. Ci\u00f2 restituisce gli oggetti effettivi anzich\u00e9 le istanze del modello Vote. Tutti gli oggetti vengono caricati con entusiasmo\n\n<strong>Voti registrati:<\/strong>\n\nGli elettori possono votare solo una volta per modello. In questo esempio il 2\u00b0 voto non conta perch\u00e9 @user ha gi\u00e0 votato per @post.\n<blockquote>@user.likes @post @user.likes @post @post.votes # =&gt; 1 @post.likes # =&gt; 1<\/blockquote>\nPer verificare se un voto \u00e8 stato conteggiato o registrato, utilizzare vote_registered? sul nostro modello dopo la votazione. Per esempio:\n<blockquote>@product.liked_by @user @product.vote_registered? # =&gt; true @product.liked_by =&gt; @user @product.vote_registered? # =&gt; false, perch\u00e9 @user ha gi\u00e0 votato in questo modo @product.disliked_by @user @product.vote_registered? # =&gt; true, perch\u00e9 l&#039;utente ha cambiato il proprio voto<\/blockquote>\nPer verificare se un voto \u00e8 stato registrato o conteggiato, utilizzare vote_registered? sul nostro modello dopo la votazione. Per consentire voci duplicate di uno stesso elettore, utilizzare l&#039;opzione duplicato. Si noti inoltre che ci\u00f2 limiter\u00e0 alcuni altri metodi che non gestivano voti multipli, in questo caso verr\u00e0 considerato l&#039;ultimo voto.\n<blockquote>@post.vote_by elettore: @user, :duplicate =&gt; true<\/blockquote>\n<strong>Memorizzazione nella cache:<\/strong>\n\nPer velocizzare l&#039;esecuzione possiamo aggiungere colonne di cache alla tabella del nostro modello votabile. Queste colonne verranno aggiornate automaticamente dopo ogni votazione.\n\n<a href=\"\/it\/contattaci\/\">Contattaci<\/a> o commenta qui sotto per saperne di pi\u00f9 su di noi.\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-37c9d121 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"37c9d121\" 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-27649f3a\" data-id=\"27649f3a\" 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-1602a60 elementor-widget elementor-widget-heading\" data-id=\"1602a60\" 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-4b022491 elementor-widget elementor-widget-shortcode\" data-id=\"4b022491\" 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=\"f3398b88ec\">\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>Acts_As_Votable is ruby gem specifically written for Rails\/ActiveRecord models and This gem allows any model to be voted on upvote\/downvote like\/dislike, etc. It allows any model to be voted under arbitrary scopes using this gem we can vote any model. votes do not have to come from a user, they can come from any model &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/it\/blog\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Come costruire una piattaforma SaaS scalabile usando Ruby on Rails<\/span> Leggi altro \"<\/a><\/p>","protected":false},"author":1,"featured_media":31872,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[681,682],"class_list":["post-8756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-acts_as_votable","tag-acts_as_votable-gem"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What is Acts_as_Votable Ruby Gem ? - RailsCarma<\/title>\n<meta name=\"description\" content=\"Acts_As_Votable is ruby gem specifically written for Rails\/ActiveRecord models &amp; allows any model to be voted on upvote\/downvote like\/dislike\" \/>\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\/agisce_come_votabile\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is Acts_as_Votable Ruby Gem ? - RailsCarma\" \/>\n<meta property=\"og:description\" content=\"Acts_As_Votable is ruby gem specifically written for Rails\/ActiveRecord models &amp; allows any model to be voted on upvote\/downvote like\/dislike\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/agisce_come_votabile\/\" \/>\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-09-06T12:56:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-06T11:46:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.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=\"5 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\/acts_as_votable\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"How to use Acts_As_Votable Gem?\",\"datePublished\":\"2016-09-06T12:56:40+00:00\",\"dateModified\":\"2021-06-06T11:46:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/\"},\"wordCount\":929,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg\",\"keywords\":[\"Acts_As_Votable\",\"Acts_As_Votable Gem\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/\",\"name\":\"What is Acts_as_Votable Ruby Gem ? - RailsCarma\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg\",\"datePublished\":\"2016-09-06T12:56:40+00:00\",\"dateModified\":\"2021-06-06T11:46:31+00:00\",\"description\":\"Acts_As_Votable is ruby gem specifically written for Rails\/ActiveRecord models & allows any model to be voted on upvote\/downvote like\/dislike\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Acts_As_Votable Gem?\"}]},{\"@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":"Cos&#039;\u00e8 la gemma di rubino Acts_as_Votable? - RailsCarma","description":"Acts_As_Votable \u00e8 una gemma di rubino scritta appositamente per i modelli Rails\/ActiveRecord e consente a qualsiasi modello di essere votato su voto positivo\/negativo come\/non mi piace","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\/agisce_come_votabile\/","og_locale":"it_IT","og_type":"article","og_title":"What is Acts_as_Votable Ruby Gem ? - RailsCarma","og_description":"Acts_As_Votable is ruby gem specifically written for Rails\/ActiveRecord models & allows any model to be voted on upvote\/downvote like\/dislike","og_url":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/agisce_come_votabile\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-09-06T12:56:40+00:00","article_modified_time":"2021-06-06T11:46:31+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.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":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"How to use Acts_As_Votable Gem?","datePublished":"2016-09-06T12:56:40+00:00","dateModified":"2021-06-06T11:46:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/"},"wordCount":929,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg","keywords":["Acts_As_Votable","Acts_As_Votable Gem"],"articleSection":["Technical Articles"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/","name":"Cos&#039;\u00e8 la gemma di rubino Acts_as_Votable? - RailsCarma","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg","datePublished":"2016-09-06T12:56:40+00:00","dateModified":"2021-06-06T11:46:31+00:00","description":"Acts_As_Votable \u00e8 una gemma di rubino scritta appositamente per i modelli Rails\/ActiveRecord e consente a qualsiasi modello di essere votato su voto positivo\/negativo come\/non mi piace","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/09\/Insight-into-act_as_votable-Gem.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/acts_as_votable\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"How to use Acts_As_Votable Gem?"}]},{"@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\/8756","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=8756"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts\/8756\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media\/31872"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media?parent=8756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/categories?post=8756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/tags?post=8756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}