小编GoY*_*shi的帖子

Ruby:将数组传递给starts_with?

我想检查我的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中的数组和循环,所以任何帮助都值得赞赏!

ruby arrays loops ruby-on-rails

7
推荐指数
1
解决办法
2805
查看次数

Rails:没有将 nil 隐式转换为 String

我从数据库列中获取不同 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)

有没有办法解决这个问题?

ruby arrays string null ruby-on-rails

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×2

ruby ×2

ruby-on-rails ×2

loops ×1

null ×1

string ×1