0

サブカテゴリのコンマ区切りリストである属性 subcategory_list を持つリソース モデルがあります。特定のサブカテゴリに属する​​リソースのみをプルする find_by_x メソッド (または同等のメソッド) を実行することは可能ですか?

したがって、与えられた場合:

Resource.create(subcategory_list: "Fun, Games") # resource 1
Resource.create(subcategory_list: "Fun") # resource 2
Resource.create(subcategory_list: "Games") # resource 3

入力が「楽しい」の場合、リソース 1 と 2 の両方を取得するにはクエリが必要です。次の場合、「Fun」のみを返すことができますが、「Fun、Games」は返せません

Resource.find_all_by_subcategory_list("Fun")
=> resource 2 (but not resource 1)

このクエリを変更して「楽しい、ゲーム」も含める方法はありますか?

4

2 に答える 2

2

subcategory_listカンマ区切りの文字列の場合:

Resource.where('subcategory_list LIKE ?', "%Fun%")

subcategoryが関連付けられているモデルの場合:

Resource.joins(:subcategories).where('subcategories.name = ?', "Fun")
于 2012-09-24T19:28:52.653 に答える
1

私は MrTheWalrus に同意しますが、Michael Bleigh による act_as_tggable_on もチェックしてみください。あなたがやっているのは Resource に関連付けられたタグのようです。acts_as_taggable_on ジェムは、あなたが今やろうとしていることを含め、多くの追加コードを書く必要なく、多くの機能を追加します。

于 2012-09-24T19:35:56.733 に答える