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

質問編集履歴

6

コード追加

2018/06/11 03:04

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,14 @@
34
34
  |1|A|
35
35
  |2|B|
36
36
 
37
+ モデル名:HistoriesDatum
37
38
 
39
+ |Operation_id|namage_id|user_id|user_name|created_at
40
+ |:--|:--:|
41
+ |1|10001|7|tanaka|yyyy/mm/dd/hh:mm
42
+ |2|10002|8|sato|yyyy/mm/dd/hh:mm
43
+
44
+
38
45
  ### 該当のソースコード
39
46
 
40
47
  gyomu_datum.rb

5

コード追加

2018/06/11 03:04

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -147,8 +147,303 @@
147
147
  </section>
148
148
 
149
149
  ```
150
+ item_controller.rb
151
+ ```Ruby
152
+ class ItemsController < ApplicationController
150
153
 
154
+ before_action :authenticate_user
151
155
 
156
+
157
+ def index
158
+
159
+ # データを降順で表示する
160
+ # @items = GyomuDatum.all.order(created_at: 'desc')
161
+
162
+ @items = GyomuDatum.all.includes(:category)
163
+
164
+ # データ検索
165
+
166
+ pp "############データ検索開始############"
167
+
168
+ if params[:manage_id].present?
169
+ items = GyomuDatum.where('manage_id LIKE ?', "%#{params[:manage_id]}%")
170
+ pp "manage_id_debug"
171
+ pp items
172
+ elsif params[:category_id].present?
173
+ items = GyomuDatum.where('category_id LIKE ?', "%#{params[:category_id]}%")
174
+ pp "category_id_debug"
175
+ pp items
176
+ elsif params[:publish_corporation].present?
177
+ items = GyomuDatum.where('publish_corporation LIKE ?', "%#{params[:publish_corporation]}%")
178
+ pp "publish_corporation_debug"
179
+ pp items
180
+ pp items
181
+ elsif params[:ip_address].present?
182
+ items = GyomuDatum.where('ip_address LIKE ?', "%#{params[:ip_address]}%")
183
+ pp "ip_address_debug"
184
+ pp items
185
+ elsif params[:target_server].present?
186
+ items = GyomuDatum.where('target_server LIKE ?', "%#{params[:target_server]}%")
187
+ pp "target_server_debug"
188
+ pp items
189
+ elsif params[:start_date].present?
190
+ items = GyomuDatum.where('start_date LIKE ?', "%#{params[:start_date]}%")
191
+ pp "start_date_debug"
192
+ pp items
193
+ elsif params[:end_date].present?
194
+ items = GyomuDatum.where('end_date LIKE ?', "%#{params[:end_date]}%")
195
+ pp "end_date_debug"
196
+ pp items
197
+ elsif params[:comment].present?
198
+ items = GyomuDatum.where('comment LIKE ?', "%#{params[:comment]}%")
199
+ pp "comment_debug"
200
+ pp items
201
+ else
202
+ items = GyomuDatum.all.order(created_at: 'desc')
203
+ pp "all_debug"
204
+ pp items
205
+ end
206
+
207
+ pp "elseout"
208
+ pp items
209
+
210
+ pp "############データ検索終了############"
211
+
212
+
213
+
214
+ # ページネーション
215
+ @items = items.page(params[:page]).per(20)
216
+
217
+ # 期限が迫っているデータを検索する
218
+
219
+ # 1ヶ月前
220
+ from = Time.now.at_beginning_of_day
221
+ to = (from + 1.month)
222
+ @items_1month = GyomuDatum.where(end_date: from...to)
223
+
224
+ end
225
+
226
+ def show
227
+ end
228
+
229
+ def new
230
+ @item = GyomuDatum.new
231
+ end
232
+
233
+ def create
234
+
235
+ # 変数定義
236
+ manage_id = params[:manage_id]
237
+
238
+ @item = GyomuDatum.find(params[:id])
239
+ manage_id = @item.manage_id
240
+ category_id = @item.category_id
241
+
242
+ # 現在の時刻取得
243
+ require "date"
244
+ time = DateTime.now
245
+
246
+ # 操作履歴登録
247
+ histories = HistoriesDatum.new({manage_id: manage_id, category_id: category_id, type_id: '1', user_id: session[:user_id], user_name: session[:user_name], created_at: time, updated_at: time, deleted_at: ""})
248
+ histories.save
249
+
250
+
251
+ # render plain: params[:GyomuDatum].inspect
252
+ # save
253
+ # @item = Item.new(params[:GyomuDatum])
254
+ # @item = GyomuDatum.new(params.require(:GyomuDatum).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment))
255
+ @item = GyomuDatum.new(item_params)
256
+ # @item.save
257
+ # redirect
258
+ # redirect_to items_path
259
+
260
+
261
+ # データ登録判定
262
+
263
+ if @item.save
264
+ @notice_message = "データ登録成功"
265
+ flash[:notice] = @notice_message
266
+ redirect_to items_path
267
+ else
268
+ @notice_message = "データ登録失敗"
269
+ flash[:notice] = @notice_message
270
+ # render plain: @item.errors.inspect
271
+ render 'new'
272
+ end
273
+ end
274
+
275
+
276
+ def edit
277
+ @item = GyomuDatum.find(params[:id])
278
+ end
279
+
280
+ def update
281
+
282
+ # データ更新処理
283
+
284
+ # 変数定義
285
+ @item = GyomuDatum.find(params[:id])
286
+ manage_id = @item.manage_id
287
+ category_id = @item.category_id
288
+
289
+ # 現在の時刻取得
290
+ require "date"
291
+ time = DateTime.now
292
+
293
+ # 操作履歴登録
294
+ histories = HistoriesDatum.new({manage_id: manage_id, category_id: category_id, type_id: '2', user_id: session[:user_id], user_name: session[:user_name], created_at: time, updated_at: time, deleted_at: ""})
295
+ histories.save
296
+
297
+
298
+ # データ編集処理判定
299
+
300
+ if @item.update(item_params)
301
+ @notice_message = "データ編集成功"
302
+ flash[:notice] = @notice_message
303
+ redirect_to items_path
304
+ else
305
+ @notice_message = "データ編集失敗"
306
+ flash[:notice] = @notice_message
307
+ render 'edit'
308
+ end
309
+ end
310
+
311
+ def destroy
312
+
313
+ # データ削除処理
314
+
315
+ # 変数定義
316
+ @item = GyomuDatum.find(params[:id])
317
+ manage_id = @item.manage_id
318
+ category_id = @item.category_id
319
+
320
+ # 現在の時刻取得
321
+ require "date"
322
+ time = DateTime.now
323
+
324
+ # 操作履歴登録
325
+ histories = HistoriesDatum.new({manage_id: manage_id, category_id: category_id, type_id: '3', user_id: session[:user_id], user_name: session[:user_name], created_at: time, updated_at: time, deleted_at: ""})
326
+ histories.save
327
+
328
+ # 削除処理
329
+ @item = GyomuDatum.find(params[:id])
330
+ @item.destroy
331
+ redirect_to items_path
332
+ end
333
+
334
+
335
+
336
+ # cron用メール送信メソッド
337
+ def mail_notice
338
+
339
+ # メール送信実行
340
+ SampleMailer.send_when_limit.deliver
341
+
342
+ end
343
+
344
+
345
+ # プライベートメソッド
346
+
347
+ # private
348
+ # def item_params
349
+ # params.require(:GyomuDatum).permit(:manage_id)
350
+ # params.require(:gyomu_datum).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment)
351
+ # params.require.fetch(:GyomuDatum,{}).permit(:manage_id, :category_id, :publish_corporation, :ip_address, :target_server, :start_date, :end_date, :comment)
352
+ # end
353
+
354
+ # プライベートメソッド
355
+ private
356
+ def item_params
357
+ permits = [
358
+ :manage_id,
359
+ :category_id,
360
+ :publish_corporation,
361
+ :ip_address,
362
+ :target_server,
363
+ :start_date,
364
+ :end_date,
365
+ :comment
366
+ ]
367
+ params.require(:gyomu_datum).permit(permits)
368
+ end
369
+
370
+ # class範囲終了
371
+ end
372
+
373
+ ```
374
+
375
+ edit.html.erb
376
+ ```Ruby
377
+ <!-- ↓↓データ編集失敗表示↓↓ -->
378
+
379
+ <% if flash[:notice] %>
380
+ <div class="alert alert-success">
381
+ <%= flash[:notice] %>
382
+ </div>
383
+ <% end %>
384
+
385
+ <!-- ↑↑データ編集失敗表示↑↑ -->
386
+
387
+ <br>
388
+ <br>
389
+ <br>
390
+ <h2>
391
+ <%= form_for @item, url: item_path(@item) do |f| %>
392
+ <p class="rei1">データ編集</p>
393
+ <p>
394
+ 管理ID:
395
+ <br>
396
+ <%= f.text_field :manage_id, placeholder: '管理ID' %>
397
+ </p>
398
+ <p>
399
+ カテゴリ:
400
+ <br>
401
+ <% if false %>
402
+ <%= f.select :category_id, [["SSL", "1"], ["ドメイン", "2"] ] %>
403
+ <% end %>
404
+
405
+ <%= f.text_field :category_id, placeholder: 'カテゴリ' %>
406
+
407
+ </p>
408
+ <p>
409
+ 発行会社:
410
+ <br>
411
+ <%= f.text_field :publish_corporation, placeholder: '発行会社' %>
412
+ </p>
413
+ <p>
414
+ IPアドレス:
415
+ <br>
416
+ <%= f.text_field :ip_address, placeholder: 'IPアドレス' %>
417
+ </p>
418
+ <p>
419
+ サーバ名:
420
+ <br>
421
+ <%= f.text_field :target_server, placeholder: 'サーバ名' %>
422
+ </p>
423
+ <p>
424
+ 有効期限の開始:
425
+ <br>
426
+ <%= f.text_field :start_date, placeholder: '2018-04-01' %>
427
+ </p>
428
+ <p>
429
+ 有効期限の終了:
430
+ <br>
431
+ <%= f.text_field :end_date, placeholder: '2018-04-01' %>
432
+ </p>
433
+ <p>
434
+ コメント:
435
+ <br>
436
+ <%= f.text_area :comment, placeholder: 'コメント' %>
437
+ </p>
438
+ <p>
439
+ <br>
440
+ <%= f.submit "編集完了" , class: "btn btn-primary"%>
441
+ </p>
442
+
443
+
444
+ <% end %>
445
+ ```
446
+
152
447
  ### 補足情報(FW/ツールのバージョンなど)
153
448
 
154
449
  ・Apache

4

文章追加

2018/06/11 03:00

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,17 @@
7
7
 
8
8
  試行錯誤する中で↓のエラーメッセージが表示されている、また、category_idに1または2しか登録できないことから、アソシエーションの設定には成功していると思います。
9
9
 
10
+ 試した記載:
11
+ <%= @items.each do |item| %>
12
+ <%= item.manage_id %>
13
+
14
+ <% item.category.each do |p| %>
15
+ <%= p.name %>
16
+ <% end %>
17
+
18
+ <% end %>
19
+
20
+ エラーメッセージ:
10
21
  undefined method `each' for #<Category id: 1, name: "SSL">
11
22
 
12
23
  モデル名:GyomuDatum

3

文章変更

2018/06/08 05:56

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -5,8 +5,7 @@
5
5
  おそらく、index.html.erbのcategory_idの記載をcategoryモデルから取得するように修正する必要があるのですが、
6
6
  色々試してみたのですが、記載方法が分からないため、教えて頂けますでしょうか。
7
7
 
8
- 試行錯誤する中で↓のエラーメッセージが表示されている、また、category_idに1または2しか登録できないことから、
8
+ 試行錯誤する中で↓のエラーメッセージが表示されている、また、category_idに1または2しか登録できないことから、アソシエーションの設定には成功していると思います。
9
- アソシエーションの設定には成功していると思います。
10
9
 
11
10
  undefined method `each' for #<Category id: 1, name: "SSL">
12
11
 

2

パス変更

2018/06/08 05:55

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -45,7 +45,7 @@
45
45
 
46
46
  end
47
47
  ```
48
- index.html.erb
48
+ views/items/index.html.erb
49
49
  ```Ruby
50
50
 
51
51
  <p class="rei1">データ一覧</p>

1

文章追加

2018/06/08 05:54

投稿

koichi8888
koichi8888

スコア24

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,11 @@
5
5
  おそらく、index.html.erbのcategory_idの記載をcategoryモデルから取得するように修正する必要があるのですが、
6
6
  色々試してみたのですが、記載方法が分からないため、教えて頂けますでしょうか。
7
7
 
8
+ 試行錯誤する中で↓のエラーメッセージが表示されている、また、category_idに1または2しか登録できないことから、
9
+ アソシエーションの設定には成功していると思います。
10
+
11
+ undefined method `each' for #<Category id: 1, name: "SSL">
12
+
8
13
  モデル名:GyomuDatum
9
14
  |ID|category_id※外部キー|..|..|
10
15
  |:--|:--:||:--:|