回答編集履歴

2

情報追加

2019/08/20 23:49

投稿

winterboum
winterboum

スコア23333

test CHANGED
@@ -16,4 +16,48 @@
16
16
 
17
17
  #####
18
18
 
19
- 他にもいくつか問題が有ることにきがつきました。あとで時間ができたら追記します
19
+ 他にもいくつか問題が有ることにきがつきました。あとで時間ができたら追記し
20
+
21
+
22
+
23
+ ### 追記
24
+
25
+ 1) index.html に <%= link_to "詳細", customer_path(customer), というような記述があると思います。そこを customer_path(customer, q: params[:q]) にしてください。多分今はやっていないのでは?
26
+
27
+ showのviewとctrlでやり取りが必要ですが、それをindexから渡す必要があります
28
+
29
+
30
+
31
+ 2) 上にも書きましたが ransackを使うために、next,prevはmodelではなくctrlで行うほうがよいです。
32
+
33
+ ctrl show で @next_customer、@prev_customer を用意して渡す。
34
+
35
+ (これですと customer_path(@prev_customer, q: params[:q])でできるので新しいpath作らないで済みます)
36
+
37
+
38
+
39
+ 以下おせっかい
40
+
41
+ 次前の検索を id: で行ってますがこれ offset で行うと楽かな?と思います。将来 名前順にしたいとかにも対応しやすい。
42
+
43
+ ```
44
+
45
+ @offset = params[:id]
46
+
47
+ @customer = @q.result.offset(@offset).first
48
+
49
+ ```
50
+
51
+ viewには@prev_customerでなく、@offsetをわたし、customer_path(@offset-1, q: params[:q])とかする。 id でなく offset を騙して渡すわけです。
52
+
53
+ ですから、index.htmlでも
54
+
55
+ ```
56
+
57
+ @customers.each.with_index( (page - 1) * par_page ){|customer,offset|
58
+
59
+ link_to 表示, customer_path(offset, q: params[:q])
60
+
61
+ }
62
+
63
+ ```

1

情報追加

2019/08/20 23:49

投稿

winterboum
winterboum

スコア23333

test CHANGED
@@ -11,3 +11,9 @@
11
11
  とでもし、
12
12
 
13
13
  method next_customer をコントローラに追加するという方法でどうでしょうか
14
+
15
+
16
+
17
+ #####
18
+
19
+ 他にもいくつか問題が有ることにきがつきました。あとで時間ができたら追記します