質問編集履歴

1

store_controller.rbとapplication_controller全文を追加

2021/09/01 05:50

投稿

kawanoonigiri
kawanoonigiri

スコア14

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  表題の通り、トップページにのみ表示したいコンテンツがあります。
6
6
 
7
- ページネーション機能がついており、2ページ目以降にはそのコンテンツを表示しないという動きにしたいです。
7
+ ページネーション機能(kaminari gemを使用)がついており、2ページ目以降にはそのコンテンツを表示しないという動きにしたいです。
8
8
 
9
9
  条件分岐のif文で表示を分けようと思うのですが、肝心の条件が思いつかず悩んでいます。
10
10
 
@@ -18,6 +18,8 @@
18
18
 
19
19
 
20
20
 
21
+ index.html.erb
22
+
21
23
  ```ruby
22
24
 
23
25
  <%if @store.page == 1 %>
@@ -66,6 +68,176 @@
66
68
 
67
69
 
68
70
 
71
+ application_controller.rb
72
+
73
+ ```ruby
74
+
75
+ class ApplicationController < ActionController::Base
76
+
77
+ before_action :basic_auth
78
+
79
+ before_action :configure_permitted_parameters, if: :devise_controller?
80
+
81
+
82
+
83
+ def search_store
84
+
85
+ @s = Store.ransack(params[:q])
86
+
87
+ @stores = @s.result(distinct: true)
88
+
89
+ end
90
+
91
+
92
+
93
+ private
94
+
95
+ def basic_auth
96
+
97
+ authenticate_or_request_with_http_basic do |username, password|
98
+
99
+ username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"]
100
+
101
+ end
102
+
103
+ end
104
+
105
+
106
+
107
+ def configure_permitted_parameters
108
+
109
+ devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
110
+
111
+ devise_parameter_sanitizer.permit(:account_update, keys: [:nickname])
112
+
113
+ end
114
+
115
+ end
116
+
117
+ ```
118
+
119
+
120
+
121
+ store_controller.rb
122
+
123
+ ```ruby
124
+
125
+ class StoresController < ApplicationController
126
+
127
+ before_action :search_store
128
+
129
+
130
+
131
+ def index
132
+
133
+ @store = Store.includes(:user).page(params[:page]).per(6)
134
+
135
+ end
136
+
137
+
138
+
139
+ def new
140
+
141
+ @store = Store.new
142
+
143
+ end
144
+
145
+
146
+
147
+ def create
148
+
149
+ @store = Store.new(post_params)
150
+
151
+ if @store.valid?
152
+
153
+ @store.save
154
+
155
+ redirect_to root_path
156
+
157
+ else
158
+
159
+ render :new
160
+
161
+ end
162
+
163
+ end
164
+
165
+
166
+
167
+ def show
168
+
169
+ @comment = Comment.new
170
+
171
+ @store = Store.find(params[:id])
172
+
173
+ @comments = @store.comments.includes(:user)
174
+
175
+ end
176
+
177
+
178
+
179
+ def edit
180
+
181
+ @store = Store.find(params[:id])
182
+
183
+ end
184
+
185
+
186
+
187
+ def update
188
+
189
+ @store = Store.find(params[:id])
190
+
191
+ if @store.update(post_params)
192
+
193
+ redirect_to store_path(@store)
194
+
195
+ else
196
+
197
+ render :edit
198
+
199
+ end
200
+
201
+ end
202
+
203
+
204
+
205
+ def destroy
206
+
207
+ @store = Store.find(params[:id])
208
+
209
+ @store.destroy
210
+
211
+ redirect_to root_path
212
+
213
+ end
214
+
215
+
216
+
217
+ def search
218
+
219
+ @results = @s.result.page(params[:page]).per(6)
220
+
221
+ end
222
+
223
+
224
+
225
+ private
226
+
227
+ def post_params
228
+
229
+ params.require(:store).permit(:name, :address, :postal_code, :telephone, :url, :closing_day, :business_hour, :fee, :water, :temperature,
230
+
231
+ :roryu_status, :roryu_time, :air_bath, :break_place, :television, :bgm, :water_depth, images: [] ).merge(user_id: current_user.id)
232
+
233
+ end
234
+
235
+ end
236
+
237
+ ```
238
+
239
+
240
+
69
241
  情報追加の必要がございましたら対応いたします。
70
242
 
71
243
  詳しい方いらっしゃいましたらご教授いただけますと幸いです。