Ich versuche, eindeutige Landkreise in meiner Datenbank in Auswahlfeld für eine Eigenschaftendatenbank angezeigt. Ich habe herausgefunden, wie das geht, aber jetzt kann ich nicht herausfinden, wie ich auf den ausgewählten Wert der Auswahl zugreifen kann. Dies hat hauptsächlich damit zu tun, wie der HTML-Select-Name ausgegeben wird.Rails collection_select search issue
Meine Form Code, Kreis ist ein Attribut für mein Eigentum Modell:
<%= collection_select(:property, :county, @Counties, :county, :county, {:prompt => true}) %>
Das gibt die HTML
<select id="property_county" name="property[county]"><option value="">Please select</option>
<option value="Pearl River">Pearl River</option>
<option value="Marion">Marion</option>
<option value="Stone">Stone</option>
<option value="Lamar">Lamar</option>
<option value="Forrest">Forrest</option>
<option value="Jones">Jones</option>
<option value="Washington">Washington</option></select>
Es ist die [] 's im select namen „Eigenschaft [Kreis ] Die anderen Elemente im Suchformular verwenden select_tag, so dass die Ausgabe einfach "min_price" statt "property [min_price]" ist. Dies verursacht einen Syntaxfehler, wenn ich versuche, meine Suchergebnisse zusammenzustellen Array in meinem Eigenschaftsmodell:
def self.find_by_lcc(params)
where = []
unless params[:mls].blank?
where << "mls = :mls"
end
unless params[:county].blank?
where << "county = :county"
end
unless params[:min_acreage].blank?
where << "acreage >= :min_acreage"
end
unless params[:max_acreage].blank?
where << "acreage <= :max_acreage"
end
unless params[:min_price].blank?
where << "price >= :min_price"
end
unless params[:max_price].blank?
where << "price <= :max_price"
end
if where.empty?
[]
else
find(:all,
:conditions => [where.join(" AND "), params],
:order => "city, price desc")
end
Aufgrund des Bezirksproblems werden alle Datensätze aufgelistet und nicht nur die Eigenschaften innerhalb dieses Bezirks. Der Browser-URL-Zeichenfolge Ich erhalte ist:
public/land?mls=&property[county]=Stone&min_acreage=0&max_acreage=16000000&min_price=0&max_price=1600000&commit=Search
Ich habe nach Antworten auf diese für ein paar Tage gesucht und ich bin sicher, es ist eine einfache Syntax Methode, die ich bei der Zusammenstellung meiner Suche Array verwenden muß.
Danke für jede Hilfe!