回答編集履歴

4

修正

2020/12/08 10:14

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -64,8 +64,6 @@
64
64
 
65
65
  n = 2 if @pages.current_page == 2 || @pages.current_page == @pages.total_pages - 1
66
66
 
67
- n = 1 if @pages.current_page == 3 || @pages.current_page == @pages.total_pages - 2
68
-
69
67
  %>
70
68
 
71
69
  <%= paginate @pages, window: n, outer_window: 1 %>

3

テストサイトの追記

2020/12/08 10:14

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -37,3 +37,41 @@
37
37
  1ページ目を表示すると下記のような形になるので、条件分岐をして、outerを増減したものを呼び出すなどの工夫が必要そうです。
38
38
 
39
39
  ![イメージ説明](74c0b10ec8c6e6108b4094e7d6b49dff.png)
40
+
41
+
42
+
43
+ ---
44
+
45
+
46
+
47
+ さらに追記です。
48
+
49
+
50
+
51
+ 前提:gemをインストールした状態(kaminariのconfigは設定せず、paginatorのカスタマイズはなし)
52
+
53
+ 下記のコードで**ほぼ**実現できます。(本当はelseとかきちんと書いた方が良い)
54
+
55
+ [https://kaminari-test.herokuapp.com/](https://kaminari-test.herokuapp.com/)
56
+
57
+ ```Ruby
58
+
59
+ <%
60
+
61
+ n = 1
62
+
63
+ n = 3 if @pages.current_page == 1 || @pages.current_page == @pages.total_pages
64
+
65
+ n = 2 if @pages.current_page == 2 || @pages.current_page == @pages.total_pages - 1
66
+
67
+ n = 1 if @pages.current_page == 3 || @pages.current_page == @pages.total_pages - 2
68
+
69
+ %>
70
+
71
+ <%= paginate @pages, window: n, outer_window: 1 %>
72
+
73
+ ```
74
+
75
+ **ほぼ**というのは、4ページを表示した際に、`Prev 1 2 3 4 5 ... 25 Next`になってしまいます。(※22ページも同じ)
76
+
77
+ 2文字以上飛ばす場合は...になるが、1文字飛ばす場合は...にならないkaminariの仕様みたいです。

2

追記

2020/12/08 10:00

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -25,3 +25,15 @@
25
25
  ![イメージ説明](5a2153b055a1f199aa03b3ebd4d3ad3d.png)
26
26
 
27
27
  ※firstとlastの削除方法が見つからなかったのですが、こだわりがなければcssで消すのもありかと思います。
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ 追記です。
36
+
37
+ 1ページ目を表示すると下記のような形になるので、条件分岐をして、outerを増減したものを呼び出すなどの工夫が必要そうです。
38
+
39
+ ![イメージ説明](74c0b10ec8c6e6108b4094e7d6b49dff.png)

1

テスト環境の結果を追記

2020/12/08 06:58

投稿

no1knows
no1knows

スコア3365

test CHANGED
@@ -10,12 +10,18 @@
10
10
 
11
11
 
12
12
 
13
+ テンプレートを使わず、デフォルトの状態で下記のような形になります。
14
+
13
- 公式による下記のような形になるのででしょう?(実装したこはなのでが・・・)
15
+ とはレイアウトを整えて、日本語化して、FirstとLastを削除すれば良いかと
16
+
17
+ ```Ruby
18
+
19
+ <%= paginate @admins, window: 1, outer_window: 1 %>
20
+
21
+ ```
14
22
 
15
23
 
16
24
 
17
- ```Ruby
25
+ ![イメージ説明](5a2153b055a1f199aa03b3ebd4d3ad3d.png)
18
26
 
19
- <%= paginate @admins, window: 3, outer_window: 1 %>
27
+ ※firstとlastの削除方法が見つからなかったのですが、こだわりがなければcssで消すのもありかと思います。
20
-
21
- ```