質問するログイン新規登録

回答編集履歴

2

追記

2020/09/20 21:30

投稿

winterboum
winterboum

スコア23676

answer CHANGED
@@ -10,4 +10,7 @@
10
10
  `tag_ids = params[:q]からidのlistを得る
11
11
  schools.select{|school| (school.tags.map(&:id) & tag_ids)==tag_ids}
12
12
  `で選ぶ
13
- ただしこの方法ですと、ページングを行うのが厄介になります
13
+ ただしこの方法ですと、ページングを行うのが厄介になります
14
+
15
+ 及び、
16
+ schoolの結果が Array になりリレーションではなくなるので、この後リレーションとしての使い方はできません

1

追記

2020/09/20 21:30

投稿

winterboum
winterboum

スコア23676

answer CHANGED
@@ -1,2 +1,13 @@
1
1
  all ですか? or の間違いでは?
2
- allですと「全てに該当する」ですから。
2
+ allですと「全てに該当する」ですから。
3
+
4
+ 追記
5
+ もしかしたらSQLの達人が回答くれるかもと待ってましたが無いようなので、、、
6
+
7
+ 私の力ですと一回で選び出す方法は思いつきません。
8
+ まず _or で 片方しかないものも含んだ schools を得、
9
+ そのあとで
10
+ `tag_ids = params[:q]からidのlistを得る
11
+ schools.select{|school| (school.tags.map(&:id) & tag_ids)==tag_ids}
12
+ `で選ぶ
13
+ ただしこの方法ですと、ページングを行うのが厄介になります