我正在尝试在控制器中拼凑创建操作的一部分,该控制器扫描输入的文本并智能地了解它所属的域名类型。
我有一个名为“domain_names”的文本框。用户将域放入以逗号分隔的框中,例如“yahoo.com,google.com”
在控制器中它会像这样击中它:
@extracted_domains = (params[:domain_names]).split(",")
@extracted_domains.each do |domain|
domain.strip
domain_scan = domain.scan(/(\w+)[.]/).flatten
com_scan = domain.scan(/[.](\w+)/).flatten
new_domain_type = DomainType.find_or_create_by_domain_type(:domain_type => com_scan)
new_domain = Domain.create(:domain => domain_scan, :domain_type_id => new_domain_type.id)
end
在控制台中它运行良好。但是当我付诸实践时,我会在数据库中存储奇怪的东西。例如,如果:域名的值为“google”,则当它存储在数据库中时,它将具有值“--- \ n- google \ n”。
不知道为什么
提前致谢。
UPDATE **
问题:它将数组放入字符串中。
解决方案:将其设为字符串。
domain_scan = domain.scan(/(\w+)[.]/).flatten.first
com_scan = domain.scan(/[.](\w+)/).flatten.first
答案 0 :(得分:1)
似乎是喂YAML输入。字符串开头的三个短划线后跟换行符是YAML的强烈指示:http://en.wikipedia.org/wiki/YAML#Sample_document
答案 1 :(得分:0)
至于你的问题,我们能看到发送的确切参数吗?
我会看一下https://github.com/pauldix/domainatrix进行域名提取。