次の形式のリストがあります。
"first - http://url.com, second - http://url.net, third - http://url.so"
# i.e. name - url, name - url, name - url
# so I have three name - url pairs
このリストを取得して、3つのFooオブジェクト(それぞれに名前とURL属性を持つ)を作成したいので、これを思いつきました。
def foo_list=(list)
self.foos = list.split(",").map { |pair| pair.split(" - ") }.each.map { |attr| Foo.where(name: attr[0].strip, url: attr[1].strip).first_or_create }
end
これは正常に機能しますが、少し冗長です。それを行うためのより簡単な方法はありますか?