2016-06-30 13 views
0

Ich versuche, ein Suchfeld zu erstellen, mit dem Benutzer nach ihrem Namen gesucht werden können. Das Problem, auf das ich stoße, ist, dass ich auch den Edelstein will_paginate verwenden möchte. Diese Codezeile @users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? ist, wo ich denke, das Problem liegt.Verwenden von will_paginate beim Anwenden eines Bereichs mit Parametern auf das Modell

class UsersController < ApplicationController 

def index 
    @users = User.all.paginate(page: params[:page]) 
    @users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? 
end 

class User < ActiveRecord::Base 
    scope :name, -> (name) { where("name ILIKE ?", "%#{name}%")} 
end 

users/index.html.erb 

    <%= form_tag users_path, method: :get do %> 
    <%= text_field_tag :name, params[:name], :placeholder => "Search by name" %> 
    <%= submit_tag "Search"%> 
    <% end %> 
+0

Sie haben nicht angegeben, was Ihr Problem ist. – DiegoSalazar

+0

Die App stürzt mit diesem Code ab. Ich kann keine der Seiten öffnen. Alles, was ich von Heroku bekomme, ist: 'State hat sich vom Start zum Absturz geändert. at = Fehlercode = H10 desc = "App abgestürzt" ' –

+0

Dieser Fehler kann nicht durch Code auf Laufzeitebene verursacht werden, Sie haben möglicherweise einen Syntaxfehler irgendwo im Code auf Klassenebene, der Ihre App beim Hochfahren zum Absturz bringt. Hast du eine Procfile? Können Sie Ihre App lokal mit demselben Befehl starten wie die Web: Deklaration Ihres Procfiles? – DiegoSalazar

Antwort

0

: Name kann nicht als Bereich verwendet werden. Als ich es änderte zu: Namesuche funktionierte der Code.

class User < ActiveRecord::Base 
    scope :nameseach, -> (name) { where("name ILIKE ?", "%#{name}%")} 
end 

def index 
    @users = User.all.paginate(page: params[:page]) 
    @users = User.namesearch(params[:name]).paginate(page: params[:page]) if params[:name].present? 
end 
0

Sie haben ein Leerzeichen in der ersten Zeile Ihrer Controller-Datei. Die Superklasse hat einen Platz darin "Application Controller"

Das würde einen Boot-Zeit H10 Fehler auf Heroku verursachen.

+0

das war nur ein Fehler, den ich beim Eintippen der Frage gemacht habe. etwas stimmt nicht mit dem Code. –