Ich bekomme Arrays von verschiedenen URLs aus einer Datenbankspalte. Beide werden verwendet, um eine Whitelist auf eine URL anzuwenden (zB www.example.com/test/page.html). Einer ist für den URL-Anfang, einer für das Ende.Rails: keine implizite Umwandlung von Nil in String
whitelist_start = self.domain.whitelists.map(&:url_start)
whitelist_end = self.domain.whitelists.map(&:url_end)
Bevor ich meine URL in der Datenbank einzufügen, möchte ich überprüfen, ob save_url wahr ist. Danach wird die gefilterte URL eingefügt. Die URL kann starten (zB www.example.com/test) oder mit einer URL enden (zB page.html). Die gesamte Whitelist kann aber auch gleichzeitig leer sein. Eines dieser drei Dinge.
save_url = url.starts_with?(*whitelist_start) || url.ends_with?(*whitelist_end) || whitelist_start.empty? || whitelist_end.empty?
Ich verwende das * vor dem Array-Namen in Starts_with? und endet mit? weil ich dort alle Array-Werte einfügen möchte. Wenn jedoch ein Array leer ist (was völlig in Ordnung ist), erhalte ich diesen Fehler und kann nicht fortfahren.
no implicit conversion of nil into String
Gibt es eine Möglichkeit, dies zu lösen?
Ich lag falsch, sorry dafür. Down geht auf :) – mudasobwa
Entspannen, es war nichts .. Danke;) – rneves