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入力が供給されているようです。文字列の先頭にある3つのダッシュとそれに続く改行は、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 に答える