2017-02-27 4 views
0

Ich erstelle einen Reddit-Klon. Beim Hinzufügen von Bewertungen und Downvotes zu meiner Seite erhalte ich diesen Fehler, wenn ich versuche, die lokale Site zu betrachten.NameError in LinksController # index

NameError in LinksController#index

Es sagt der Fehler auf dem „acts_as_votable“ ist, und ich kann nicht herausfinden, was falsch wäre. Er sagt auch,

undefined local variable or method acts_as_votable‘für #`

Dies ist mein Code in link.rb unter Modelle -> Bedenken -> in Sublime

class Link < ApplicationRecord 
    acts_as_votable 
    belongs_to :user 
    end 

ich die "acts_as_votable" Juwel haben in meinem Gemfile und habe "Bundle installieren"

+0

Was ist Ihr 'LinksController' aussehen? – Iceman

+0

Haben Sie die Migrationen ausgeführt? Hast du das in eine Sorge oder ein Modell gesteckt? Wenn Bedenken => Haben Sie es in Ihr Modell aufgenommen? Rufen Sie diese Methode auch in Ihrem Controller an? –

Antwort

0

Ich denke, Sie sollten Bundle installieren, nicht installieren Bundle.

acts_as_votable 

ist keine Standard-Ruby-Methode. Es erfordert das Gem 'acts_as_votable' Implementiere es in deine Gemfile, führe die Bundle-Installation aus, migriere deine Datenbank, starte den Server neu und versuche es erneut. Sie sollten das acts_as_votable auch in Ihr Modell und nicht in Bedenken einfügen. Bedenken sind in der Regel Module und keine Klassen ... Wenn Sie ein Modell namens Link haben, sollten Sie dies hier einfügen. Wenn Sie dies berücksichtigen möchten, müssen Sie dieses Problem in Ihrem Modell berücksichtigen.

Der Edelstein erstellt eine Migration für Sie. Sie sollten entweder rake db:migrate oder rails db:migrate (Schienen 5+) ausführen. nach dem Ausführen bundle install. Um sicher zu sein, starten Sie Ihren Rails Server nach der Migration neu.

Link zu Gem https://github.com/ryanto/acts_as_votable