Ich bin neu bei Ruby on Rails, und ich erstelle meine erste Website. Ich habe ein Benutzermodell mit 3 Spalten: firstname
, lastname
und email
. Ich verwende ransack, um eine Suchmaschine zu erstellen, und ich möchte ein Suchfeld haben, das jede Spalte durchläuft und das Ergebnis anzeigt.Ransack, Suche mehrere Spalten, ein Feld, Schienen 3
ich user_controller.rb gemacht haben wie folgt aussehen:
@q = User.search(params[:q])
@users = @q.result(:distinct => true)
Und mein User \ index.html.erb sieht wie folgt aus:
<%= search_form_for @search do |f| %>
<div class="field">
<%= f.label :firstname_cont , "Firstname" %>
<%= f.text_field :firstname_cont %>
<%= f.label :lastname_cont , "Lastname" %>
<%= f.text_field :lastname_cont %>
<%= f.label :email_cont , "Email" %>
<%= f.text_field :email_cont %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
Geben Sie mir 3 Suche Felder, aber ich möchte nur eine, die Vorname, Nachname und E-Mail durchläuft.
Bearbeiten 1: Nach dem Testen von mehr, fand ich heraus, dass das Suchfeld nicht sowohl Vorname und Nachname, oder alle Leerzeichen verarbeiten kann. Ich habe gelesen, dass es möglich ist, eine helper_method wie folgt zu machen: Searching multiple fields with Ransack
Und wenn ich das Suchergebnis bekomme, werde ich in meinen Modellindex etc: user/index geworfen. Wo kann ich das ändern?
Aber es gibt nichts, wie man es in der Ansicht verwendet. Warum ist es so schwer, das zu tun? Das ist es, was du tust: in Controller mach das -> im Modell mache das -> in Sicht tu das -> Und vergiss nicht, die Routen so zu reparieren ->
Nizza, die wie ein Charme! Ich hatte mich blind gemacht, aber ich sehe jetzt, dass die Antwort direkt vor mir war. Danke! –
Ich bin froh, wenn ich helfen kann^_^ – phron
Kann ich Sie um Hilfe bitten? Ich habe bemerkt, dass Whitespace oder die Suche mit mehr als 1 Wort diese Methode zum Scheitern bringt. Wenn der Vorname Foo ist und der Nachname Bar und ich die Foo-Leiste suche, wird es scheitern. Ist es möglich, ein: def set_full_name .... end zu erstellen und es dann in der Ansicht aufzurufen?und wie nennst du es in der Ansicht? mit helper_method? ich schaffe es, dies zu tun .. Und eine letzte Sache, wenn ich irgendwo anders suchen, werden meine Ergebnisse mich immer zum Modell - Index werfen. Warum ist das? –