2017-05-05 1 views
-3

Hi Ich erstelle eine kleine Sinatra-App und versuche, ein Voting-System darin zu erstellen.Kennt jemand ein nützliches Juwel, um Wahlsystem in Sinatra zu erstellen?

Ich versuchte mit Acts_as_votable Juwel, aber es gibt mir einen Fehler.

rake db:migrate                                 
rake aborted!                                   
TypeError: ActsAsVotable is not a class 

Hier ist meine Migrationsdatei, die ich aus dem Quellcode von gem versucht habe. Klasse ActsAsVotable < ActiveRecord :: Migration [5.1] def selbst.auf create_table: votes do | t |

t.references :votable, :polymorphic => true 
    t.references :voter, :polymorphic => true 

    t.boolean :vote_flag 
    t.string :vote_scope 
    t.integer :vote_weight 

    t.timestamps 
end 

if ActiveRecord::VERSION::MAJOR < 4 
    add_index :votes, [:votable_id, :votable_type] 
    add_index :votes, [:voter_id, :voter_type] 
end 

add_index :votes, [:voter_id, :voter_type, :vote_scope] 
add_index :votes, [:votable_id, :votable_type, :vote_scope] 


end 

    def self.down 
    drop_table :votes 
    end 
end 

Ich habe auch Acts_as_votable-Modul aus dem Edelstein Quellcode erstellt. siehe unten Code

require 'active_record' 
require 'active_support/inflector' 

$LOAD_PATH.unshift(File.dirname(__FILE__)) 

module ActsAsVotable 

    if defined?(ActiveRecord::Base) 
    require 'acts_as_votable/extenders/votable' 
    require 'acts_as_votable/extenders/voter' 
    require 'acts_as_votable/vote' 
    ActiveRecord::Base.extend ActsAsVotable::Extenders::Votable 
    ActiveRecord::Base.extend ActsAsVotable::Extenders::Voter 
    end 

end 

require 'acts_as_votable/extenders/controller' 
ActiveSupport.on_load(:action_controller) do 
    include ActsAsVotable::Extenders::Controller 
end 

Jeder Vorschlag, diese Arbeit zu machen oder andere alternet Lösung für Sinatra?

+0

Ich kenne kein Juwel, aber überprüfen Sie dies: https://github.com/andisugandi/poting, kann es Ihnen helfen. – Gerry

+0

Bitte lesen Sie "[fragen]". Sie bitten uns, Off-Site-Ressourcen zu empfehlen, die nicht zum Thema gehören. –

Antwort

1

Wie Sie in the "Acts As Votable" documentation sehen können, ist es ein Juwel mit dem Rails-Framework integriert, also würde ich nicht darauf wetten, dass es mit Sinatra korrekt funktioniert (obwohl Sie ActiveRecord Migrations verwenden).

Am Ende können Sie entweder zu Rails wechseln oder den Abstimmungscode selbst schreiben; Sie können ein Beispiel von Gerry sehen oder versuchen Sie "Create your first voting app with Sinatra".

+0

Vielen Dank. Da ich wirklich ein Neuling für all diese Sachen bin, war ich mir nicht 100% sicher, ob es irgendwie funktionieren würde. Aber deine Antwort macht Sinn. Danke vielmals. –

Verwandte Themen