我从数据库列中获取不同 url 的数组。两者都用于在 url 上应用白名单(例如 www.example.com/test/page.html)。一个用于 url 开头,一个用于结尾。
whitelist_start = self.domain.whitelists.map(&:url_start)
whitelist_end = self.domain.whitelists.map(&:url_end)
Run Code Online (Sandbox Code Playgroud)
在将我的 url 插入数据库之前,我想检查 save_url 是否为真。之后,将插入过滤后的 url。网址可以以以太开头(例如 www.example.com/test)或以网址结尾(例如 page.html)。但是整个白名单也可以同时为空。这三件事之一。
save_url = url.starts_with?(*whitelist_start) || url.ends_with?(*whitelist_end) || whitelist_start.empty? || whitelist_end.empty?
Run Code Online (Sandbox Code Playgroud)
我在starts_with 中的数组名称之前使用*?和ends_with?因为我想在那里插入所有数组值。但是,如果一个数组为空(这完全没问题),我会收到此错误并且无法继续。
no implicit conversion of nil into String
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
我需要迭代一个Object中的所有值,我将用它来过滤另一个数组.
在Google上搜索我发现Object.values(),但它不适用于打字稿.
我可以在打字稿上使用相同的东西吗?