質問編集履歴

1

質問の追加

2019/11/25 03:44

投稿

ayumu0622
ayumu0622

スコア23

test CHANGED
File without changes
test CHANGED
@@ -325,3 +325,347 @@
325
325
  新規作成をクリックしたら、クリックしたセルのlineカラムが自動で設定されて、フォームではnumberカラム、 nameカラム、birthdayカラムのみを入力するようにしたいです。
326
326
 
327
327
  何かいい方法はないでしょうか?
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+ 2019.11.25追記
342
+
343
+
344
+
345
+ stalls_controller.rb
346
+
347
+ ```ruby
348
+
349
+ class StallsController < ApplicationController
350
+
351
+ def index
352
+
353
+ @stall = Stall.includes(:cow).order("stallnumber")
354
+
355
+ end
356
+
357
+
358
+
359
+ def show
360
+
361
+ @stall = Stall.includes(:cow).find(params[:id])
362
+
363
+ end
364
+
365
+
366
+
367
+ def new
368
+
369
+ @cow = Cow.new(birthday: Date.new(2010,1,1))
370
+
371
+ render template:'cows/new'
372
+
373
+ end
374
+
375
+
376
+
377
+ def edit
378
+
379
+ @stall = Stall.includes(:cow).find(params[:id])
380
+
381
+ end
382
+
383
+
384
+
385
+ def create
386
+
387
+ @cow = Cow.new(params[:cow])
388
+
389
+ if @cow.save
390
+
391
+ redirect_to @cow, notice: "登録しました。"
392
+
393
+ render template:'cows/show'
394
+
395
+ else
396
+
397
+ render "new"
398
+
399
+ end
400
+
401
+ end
402
+
403
+
404
+
405
+ def update
406
+
407
+ @stall = Stall.includes(:cow).find(params[:id])
408
+
409
+ @stall.assign_attributes(params[:cow])
410
+
411
+ if @stall.save
412
+
413
+ redirect_to @stall, notice: "更新しました"
414
+
415
+ else
416
+
417
+ render "edit"
418
+
419
+ end
420
+
421
+ end
422
+
423
+
424
+
425
+ def destroy
426
+
427
+ @stall = Stall.find(params[:id])
428
+
429
+ @stall.destroy
430
+
431
+ redirect_to :stall, notice: "削除しました。"
432
+
433
+ end
434
+
435
+
436
+
437
+ end
438
+
439
+
440
+
441
+ ```
442
+
443
+
444
+
445
+ cows_controller.rb
446
+
447
+ ```ruby
448
+
449
+ class CowsController < ApplicationController
450
+
451
+ def index
452
+
453
+ @stall = Stall.includes(:cow).order("number")
454
+
455
+ end
456
+
457
+
458
+
459
+ def show
460
+
461
+ @cow = Cow.find(params[:id])
462
+
463
+ end
464
+
465
+
466
+
467
+ def new
468
+
469
+ @cow = Cow.new(birthday: Date.new(2010,1,1))
470
+
471
+ end
472
+
473
+
474
+
475
+ def edit
476
+
477
+ @cow = Cow.find(params[:id])
478
+
479
+ end
480
+
481
+
482
+
483
+ def create
484
+
485
+ @cow = Cow.new(params[:cow])
486
+
487
+ if @cow.save
488
+
489
+ redirect_to @cow, notice: "登録しました。"
490
+
491
+ else
492
+
493
+ render "new"
494
+
495
+ end
496
+
497
+ end
498
+
499
+
500
+
501
+ def update
502
+
503
+ @cow = Cow.find(params[:id])
504
+
505
+ @cow.assign_attributes(params[:cow])
506
+
507
+ if @cow.save
508
+
509
+ redirect_to @cow, notice: "更新しました"
510
+
511
+ else
512
+
513
+ render "edit"
514
+
515
+ end
516
+
517
+ end
518
+
519
+
520
+
521
+ def destroy
522
+
523
+ @cow = Cow.find(params[:id])
524
+
525
+ @cow.destroy
526
+
527
+ redirect_to :cow, notice: "削除しました。"
528
+
529
+ end
530
+
531
+
532
+
533
+ end
534
+
535
+
536
+
537
+ ```
538
+
539
+
540
+
541
+ stallsのindex.html.erb
542
+
543
+ ```html
544
+
545
+ <% @page_title = "搾乳牛管理" %>
546
+
547
+ <h1><%= @page_title %></h1>
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+ <table class = "index" align = "left">
558
+
559
+
560
+
561
+ <% @stall.each do |cell|%>
562
+
563
+ <% if cell.cow.present? %>
564
+
565
+ <tr><td><%= link_to cell.cow.number, cell.cow %></td></tr>
566
+
567
+ <% else %>
568
+
569
+ <tr><td><%= link_to "新規作成",new_stall_path(stall_id: cell.id) %></td></tr>
570
+
571
+ <% end %>
572
+
573
+ <% end %>
574
+
575
+
576
+
577
+
578
+
579
+ </table>
580
+
581
+
582
+
583
+ ```
584
+
585
+
586
+
587
+ cowのshow.html.erb
588
+
589
+
590
+
591
+ ```html
592
+
593
+ <% @page_title = "詳細" %>
594
+
595
+
596
+
597
+ <h1><%= @page_title %></h1>
598
+
599
+
600
+
601
+ <td><%= link_to "編集", [:edit, @cow] %>/
602
+
603
+ <%= link_to "削除", @stall, method: :delete %></td>
604
+
605
+ <td><%= link_to "一覧へ戻る", :stalls%></td>
606
+
607
+
608
+
609
+ <table class = "attr">
610
+
611
+ <tr>
612
+
613
+ <th>個体識別番号</th>
614
+
615
+ <th>名号</th>
616
+
617
+ <th>生年月日</th>
618
+
619
+ <th>状態</th>
620
+
621
+ </tr>
622
+
623
+ <tr>
624
+
625
+ <td><%= @cow.number %></td>
626
+
627
+ <td><%= @cow.name %></td>
628
+
629
+ <td><%= @cow.birthday %></td>
630
+
631
+ <td><%= @cow.status == 1 ? "経産牛" : "未経産牛" %></td>
632
+
633
+ </tr>
634
+
635
+ </table>
636
+
637
+ ```
638
+
639
+ ①stallの一覧(indexアクション)から新規作成
640
+
641
+
642
+
643
+ ②stallcontrollerからcowcontrollerのnewアクションを使って新規作成のフォームを表示
644
+
645
+
646
+
647
+ ③フォームに内容を書いて送信
648
+
649
+
650
+
651
+ ④フォームの内容が反映された詳細ページ(showアクション)にリダイレクトされる
652
+
653
+
654
+
655
+ の流れで新しい牛の登録をするつもりで上のコントローラを書いたのですが、
656
+
657
+
658
+
659
+ ②で表示される画面(フォームの内容を書いた後です)
660
+
661
+ ![イメージ説明](1a361a9793997f7b6c52794939fcca3e.png)
662
+
663
+
664
+
665
+ ②の内容をCreate Cowボタンで送信した後の画面
666
+
667
+ ![イメージ説明](8b8ac13e9822f4c64d3aecb6b28d470a.png)
668
+
669
+
670
+
671
+ フォームの内容が書かれた状態のままで、URLだけが変更されてしまっています。