Ruby
およびC
タグがdbに存在します。データベースにないタグを抽出するにはどうすればよいですか?
Tag.where(:name => ["Ruby", "C", "foo", "bar"]).map(&:name)
戻り値:["Ruby", "C"]
。
データベースにないタグを返すにはどうすればよいですか?逆ですすなわち["foo", "bar"]
優雅なRuby one linerソリューションを探しています。可能なら。
Ruby
およびC
タグがdbに存在します。データベースにないタグを抽出するにはどうすればよいですか?
Tag.where(:name => ["Ruby", "C", "foo", "bar"]).map(&:name)
戻り値:["Ruby", "C"]
。
データベースにないタグを返すにはどうすればよいですか?逆ですすなわち["foo", "bar"]
優雅なRuby one linerソリューションを探しています。可能なら。
search_tags = ["Ruby", "C", "foo", "bar"]
not_found = search_tags - Tag.where(:name => search_tags).map(&:name)
あなたがすでに持っていたものをほとんどコピー&ペーストするだけで、必要に応じて調整します。
私は、次の1行であることと思う。それは4つのクエリがかかりますので
["Ruby", "C", "foo", "bar"].reject { |name| Tag.where(:name => name) }
しかし、それは、高速ではありません。
+1の配列のマイナス記号は...前に見たことがありません:) – tybro0103
@tybro:次に、 'Array#&'と 'Array#|'を見たいかもしれません。 :-) –