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

質問編集履歴

1

書式の改善

2020/09/29 08:23

投稿

kei__3
kei__3

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- rails ページネーションとソート機能実装
1
+ NoMethodError undefined method `paginate'改善
body CHANGED
@@ -5,15 +5,9 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
 
7
7
  ```
8
- ActionView::Template::Error (undefined method `total_pages' for #<Array:0x00007fffca5aa718>):
8
+ NoMethodError (undefined method `paginate' for #<Array:0x00007fffde2f4b90>):
9
- 7: <a class="btn btn-lg btn-primary" href="/posts/ranking" role="button">人気順</a>
10
- 8: </div>
11
- 9: <%= render @posts %>
12
- 10: <%= will_paginate %>
13
- 11: </div>
14
- 12: </div>
15
9
 
16
- app/views/posts/ranking.html.erb:10
10
+ app/controllers/posts_controller.rb:52:in `ranking'
17
11
  ```
18
12
  ### post_controller.rb
19
13
  ```
@@ -69,10 +63,13 @@
69
63
  end
70
64
 
71
65
  def ranking
72
- post= Post.paginate(page: params[:page])
66
+ @posts = Post.sort_like.paginate(page: params[:page],per_page: 15)
73
- @posts = post.sort{|a,b| b.liked_users.count <=> a.liked_users.count}
74
67
  end
75
68
 
69
+
70
+
71
+
72
+
76
73
  private
77
74
 
78
75
  def post_params
@@ -83,6 +80,8 @@
83
80
  @post = current_user.posts.find_by(id: params[:id])
84
81
  redirect_to root_url if @post.nil?
85
82
  end
83
+
84
+
86
85
 
87
86
  end
88
87
 
@@ -101,12 +100,20 @@
101
100
  <a class="btn btn-lg btn-default" href="/" role="button">新着順</a>
102
101
  <a class="btn btn-lg btn-primary" href="/posts/ranking" role="button">人気順</a>
103
102
  </div>
103
+
104
104
  <%= render @posts %>
105
- <%= will_paginate %>
105
+ <%= will_paginate @posts%>
106
106
  </div>
107
107
  </div>
108
+ ```
108
109
 
110
+ ###post.rb一部
111
+
109
112
  ```
113
+ def self.sort_like
114
+ Post.all.sort{|a,b| b.liked_users.count <=> a.liked_users.count}
115
+ end
116
+ ```
110
117
  ### _post.html.erb
111
118
  ```
112
119
  <div class="col-md-4">