Hallo StackOverflow :), Ich habe eine Frage zu einem Collection_Select in einem Formular.Rails - Zurückgeben eines Zeichenfolgenwerts in collection_select
Zuerst ist die Sammlung auswählen ein Filter in einer Suchmaske und die Anzeige der Auswahl funktioniert, das Problem ist der Wert an die Anfrage übergeben.
Bevor ich hatte eine text_field_tag was in Ordnung arbeitet:
<% text_field_tag :book_name, params[:book_name], placeholder: 'Book' %> #Text field Works
Rückkehr der param in der Konsole
"Book_name"=>"Harry Potter"
Zweite Wahl mit der Sammlung auswählen:
<%game = Book.find_by name: params[:book_name] %>
<% collection_select(:book, :book_name, Book.all, :id, :name, {selected: book.try(:id)}, prompt: true) %>
Return dies in der Konsole:
"book"=>{"book_name"=>"2"}
und ich würde wie genau das gleiche zurück, wie oben
"book_name" => "Name"
Hier ist die Search-Controller, vielleicht sollte ich diese ändern?
def search
if params[:book_name].present?
@searchs = User.joins(:books).where(books: {name: params[:books_name]}).near(params[:city], params[:distance] || 10)
elsif params[:city].present?
@searchs = User.near(params[:city], params[:distance] || 10).where("id != ?", current_user.id)
else
@searchs = User.none
Ich hoffe, jemand könnte mir dabei helfen. Ich habe viele verschiedene Möglichkeiten ausprobiert, aber nichts hat funktioniert! Vielen Dank im Voraus !
Danke für diese Antwort, ich bevorzuge IDs zu verwenden, viel besser für die Suche.Perfekte Antwort, ich werde das versuchen und euch auf dem Laufenden halten;) –
Vielleicht könntest du mir dabei helfen, ich habe immer noch den param so, wenn ich die Suche einlege "book" => {"book_name" => "2"} ', mit dem Doppelpfeil, kennst du eine Möglichkeit, dies zu' book_name => 2 'zu ändern und den ersten Pfeil zu überspringen? Oder muss ich etwas im Search Controller ändern? Es tut mir leid, ich bin ein bisschen neu zu Schienen –
Welche Version von Schienen verwenden Sie? (verwenden Sie string_parameters in Ihrem Controller?) Wie auch immer .. Ich verstehe nicht sehr gut Ihre Frage .. meinst du tun 'params [: Buch]' Sie bekommen '{" Buch_Name "=>" 2 "}' ? –