0

我尝试将 yaml 文件加载到数组中,但由于“ab c”的未定义方法“join”失败:String

# Check certain temporarily emails
# Throw notice not accepted use other email
require 'yaml'
bad_hostnames = YAML::load(File.read("#{Rails.root}/config/bad_hosts.yml"))
if /^(#{bad_hostnames.join("|")})$/.match(host)
  errors.add(:email, "Please not use a disposable mailbox")
end

所以我在模型之前和顶部需要 yaml ,我在其中加载 yml 的控制器:

require 'yaml'

仍然是相同的结果,在 Rails 控制台中这完美无缺,我错过了什么?上面的代码在我的 user.rb 模型中,在控制台中它可以工作

编辑:bad_hosts.yml 看起来像(缩短)1 提供者该行

0-mail.com
10minutemail.com
30minutemail.com
4warding.net
4

1 回答 1

2

您的.yml文件不是YAML文件。

这将使其.yml归档。

- 0-mail.com
- 10minutemail.com
- 30minutemail.com
- 4warding.net

但是,当您只想逐行加载文件时,请尝试以下操作:

lines = IO.readlines("#{Rails.root}/config/bad_hosts.yml")
# note: lines end in "\n"
于 2012-10-31T10:31:46.157 回答