Ich erlaube meinem Benutzer, eine benutzerdefinierte SQL-Abfrage in einer erweiterten Form einzugeben, wenn er möchte, und ich fütterte seine Eingabe direkt in die "Where" -Klausel in meiner Suchmethode.Rails: Catch-Ausnahme für ungültige SQL-Abfrage
Allerdings wird der Benutzer manchmal eine ungültige SQL-Abfrage eingeben. Jetzt wird eine Fehlerseite angezeigt. Ich möchte stattdessen eine "ungültige Syntax" -Anweisung anzeigen.
def self.search(search)
if search
begin
includes(:hobbies, :games).where(search)
rescue SQL_syntax_error_exception # ?
#display error message
end
Ich bin durch diese verwirrt, denn selbst wenn ich versuchte, die (angeblich) All-inclusive-
rescue => e
es noch nicht mitbekommen haben ...
Oh yeah Ich werde es auch irgendwie sanieren müssen, aber ich bin noch nicht zu diesem Teil gekommen. Ich versuche nur, die nackte Funktionalität zuerst zu bekommen. – ineedahero
Es gibt viele Plugins für Rails, die die Suche flexibler machen und das Überfüllen beliebiger Benutzerdaten in Ihre Abfrage überflüssig machen. Welche Ausnahme wird ausgelöst? Versuchen Sie 'rette Object => e ', um alles zu bekommen, aber sobald Sie den richtigen Typ identifiziert haben, retten Sie * nur * das. – tadman
Ok ich versuche es mit einem Edelstein lol – ineedahero