我想检查我的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)
所以我的问题是如何将数组值传递给starts_with?以及如何检查save_url是否为true。我不擅长Ruby中的数组和循环,所以任何帮助都会受到赞赏!
答案 0 :(得分:13)
您可以尝试使用splat运算符(*
)来放置数组,如下所示:
url = 'www.example.com/content1/test.html'# => "www.example.com/content1/test.html"
array = ["www.example.com/content1", "www.example.com/content2", "www.example.com/content3"]
save_url = url.starts_with?(*array) #=> true
答案 1 :(得分:4)
您可以按如下方式将URL数组传递给 start_with?方法。
save_url = url.start_with?(*array)
答案 2 :(得分:1)
start_with接受多个字符串作为参数,但不是多个字符串的数组,我不认为。
为什么不循环数组并在循环中调用start_with;
array.each do | valid_url |
save_url = url.starts_with? valid_url
return unless save_url
DBTable.create(url: url)
end