2016-04-19 4 views
-1

Ich versuche, eine Suchleiste aus einer Tabelle remedy mit der Zeichenfolge remedyName automatisch zu vervollständigen. HierAnzeigename aus Array in Suchleiste für automatische Vervollständigung

ist die JavaScript Ich habe in \pages\home.html.erb

$(function() { 
    var availableTags = "<%= @remedies_remedyName%>"; 

    $("#autoComplete").autocomplete({ 
     source: availableTags 
    }); 
    }); 

Hier ist der Code in Pages Controller

def home 
@remedies = Remedy.all 
end 

Hier ist der HTML in /pages/home

<div class="carousel-caption searchbar">     
<form class="search" action="/pages/searchremedy" method="get"> 
    <input id="autoComplete" class="searchTerm" name="searchremedy" placeholder=" Search by treatment type, or tell us what you'd like to treat..." /> 
    <input class="searchButton" type="submit" placeholder="Search" /> 
</form> 
</div> 
+0

Versuchen https://github.com/peterwillcn/rails4-autocomplete. Das wird dir helfen. –

+0

Danke für den Vorschlag, ich habe gestern alles eingerichtet, aber es schien einfach nicht zu funktionieren. Die automatische Vervollständigung funktioniert, wenn ich ein definiertes statisches Array habe, möchte aber dasselbe machen, außer dass ich ein Array von meiner Tabelle aus anrufe. –

+0

Fügen Sie den Code von/pages/searchremedy Action ein –

Antwort

1

Sie sind Ausdruck von Rubin Variable @remedies_remedyName in Ihre Javascr ipt. Es sieht nicht so aus, als hätten Sie diese Instanzvariable definiert.

var availableTags = "<%= @remedies_remedyName%>"; 

Aktualisieren Sie Ihre js Code auf die folgenden:

var availableTags = "<%= raw(@remedies.map(&:remedyName)).html_safe %>"; 

Anmerkung: Ich gehe davon aus Sie Spalte remedyName in Ihrem Remedy Tabelle mit dem Namen haben.

+0

Ich dachte, das würde es aber immer noch nicht funktionieren! Aber ja, du bist richtig AbhilfeName ist eine Spalte. –

+0

Ich habe gerade versucht und es hat gut funktioniert. Bitte fügen Sie diese Zeile von der gerenderten Seite hier ein. – Uzbekjon

+0

Oh ja? Welche Linie? –

0

Versuchen Sie die folgenden:

var availableTags = <%= @remedies.pluck(:remedyName) %>; 
Verwandte Themen