我想检查我的url是否以某些字符串开头,然后将其保存到数据库中.字符串存储在一个数组中,因为starts_with?接受多个值,我想获取所有数组值starts_with?.
array = ["www.example.com/content1", "www.example.com/content2", "www.example.com/content3"]
save_url = url.starts_with?() #here I want to insert all array values, but how?
if save_url #I want to check if save_url is true so my entries are somewhat filtered
DBTable.create(url: url)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何将数组值传递给starts_with?以及如何检查save_url是否为true.我不擅长Ruby中的数组和循环,所以任何帮助都值得赞赏!
我从数据库列中获取不同 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)
有没有办法解决这个问题?