0

我正在尝试在控制器中拼凑创建操作的一部分,该控制器扫描输入的文本并智能地了解它是什么类型的域名。

我有一个名为“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 

在控制台中它工作得很好。但是当我把它付诸实践时,我得到了非常奇怪的东西存储在数据库中。例如,如果 :domain 本来应该具有值“google”,那么当它存储在数据库中时,它将具有值“---\n- google\n”。

不知道为什么

提前致谢。

更新**

问题:它将一个数组放入一个字符串中。

解决方案:将其设为字符串。

domain_scan = domain.scan(/(\w+)[.]/).flatten.first
com_scan = domain.scan(/[.](\w+)/).flatten.first
4

2 回答 2

1

它似乎是由 YAML 输入提供的。字符串开头的三个破折号后跟一个换行符是 YAML 的有力指示:http ://en.wikipedia.org/wiki/YAML#Sample_document

于 2012-05-28T00:22:12.093 回答
0

至于您的问题,我们可以看到发送的确切参数吗?

我会看看https://github.com/pauldix/domainatrix进行域提取。

于 2012-05-28T00:21:39.870 回答