2011-01-16 7 views
1

ich etwas mache, das auf für die Beiträge, wie die Autocomplete-Tags Feld ist stackoverflow.comTags auf Beiträge erstellen RAILS

Ich will es machen, so dass, wenn Sie einen Blog-Post zu machen, können Sie es mit Worten markieren können in eine Datenbank, ähnlich wie SO.

Für den Pfosten, belongs_to_and_has_many es Tags für die Tags, es Beiträge

belongs_to_and_has_many aber es ist ein Problem für mich auf der gleichen Seite zu tun, weil @post Null wäre.

Wie kann ich das umsetzen?

(Wenn mir jemand den Code für die Stackoverflow Frage stellen Seite geben kann, die FANTASTISCHEN wäre)

+1

Bitte aktualisieren Sie Ihre Frage, um zu erklären, was Sie über @post zu sein, die Null ist. Wir sind nicht psychisch. – noodl

+0

Es ist Null, weil der Beitrag noch nicht erstellt wurde und post viele Tags hat. Wenn ich den Beitrag erstelle, möchte ich die Tags angeben. – SuperString

Antwort

1

Ich denke, das Problem hier ist, dass es scheint, als ob Sie zwei verschiedene Fragen stellen. Bitte korrigiere mich, wenn ich falsch liege.

Die erste Frage ist, wie Sie die Autocomplete-Funktion implementieren, damit Benutzer einfach aus einer vorbelegten Liste von Tags auswählen können. Um dies zu beantworten, können Sie sich auf die Antwort von spncrgr oben beziehen.

Die zweite Frage ist, wie man damit umgehen kann, diese abgerufenen Tags dem aktuellen Post zuzuordnen. Dazu können Sie Ihrer Autocomplete-Lösung zusätzliche JavaScript-Funktionalität hinzufügen. Wenn ein Benutzer aus dem Feld für die automatische Vervollständigung das gewünschte Tag auswählt, können Sie das wie bei StackOverflow tun und das Tag zu einer Liste von Tags in einem einzelnen Textfeld hinzufügen. Diese können entweder durch Leerzeichen oder Kommas getrennt sein.Wenn Sie das Formular abschicken den neuen Beitrag zu erstellen, können Sie dieses Feld analysieren hinein getrennte Tags ist:

tags = params[:tags].split(' ') 

Anschließend können Sie diese Tags an das Modell in der Post # assoziieren Aktion erstellen.

0

Es ist für mich sieht aus wie Sie automatisch Tags generieren möchten.

Sie

schaffen könnte

Klasse Beitrag
BEFORE_SAVE: create_tags

privaten
def create_tags
# Ihre Tags irgendwie
self.tags erhalten < < Tag.new (: text = > "...")
Ende
Ende

Methode in models/post.rb und bauen sie dort.

+0

meinst du controller? und irgendwelche Ideen, wie man die Tags bekommt? – SuperString

0

Wenn Sie nach vorhandenen Tags für Ihren automatischen Vorschlag suchen möchten, sollten Sie ihn mit Tag.all abgleichen, da dies nicht gleich Null ist, genauso wie Sie eine Gruppe von Objekten in einem Auswahl-Dropdown sammeln würden . Nicht sicher über den Code für die automatische Vervollständigung, aber die Tags sollten in der Tag-Tabelle enthalten sein.

Verwandte Themen