質問編集履歴

1

エラーで表示されたファイルが漏れていたので追記します。

2017/10/18 02:33

投稿

koume
koume

スコア458

test CHANGED
File without changes
test CHANGED
@@ -399,3 +399,237 @@
399
399
  bank_form.rbでbk_nameを定義すれば解決できるのかな?とは思いますが、だとしても定義の仕方がわからないのです。
400
400
 
401
401
  初心者なので長々と内容を全て記述させていただきました。お忙しいとは思いますが教えてください。お願いします。
402
+
403
+
404
+
405
+ 追記
406
+
407
+ ```ここに言語を入力
408
+
409
+ form_presenter.rb
410
+
411
+
412
+
413
+ class FormPresenter
414
+
415
+ include HtmlBuilder
416
+
417
+
418
+
419
+ attr_reader :form_builder, :view_context
420
+
421
+ delegate :label, :text_field, :password_field, :check_box, :radio_button, :text_area, :bk_name, :object, to: :form_builder
422
+
423
+
424
+
425
+ def initialize(form_builder, view_context)
426
+
427
+ @form_builder = form_builder
428
+
429
+ @view_context = view_context
430
+
431
+ end
432
+
433
+
434
+
435
+ def notes
436
+
437
+ markup(:div, class: 'notes') do |m|
438
+
439
+ m.span '*', class: 'mark'
440
+
441
+ m.text '印の付いた項目は入力必須です。'
442
+
443
+ end
444
+
445
+ end
446
+
447
+
448
+
449
+ def text_field_block(name, label_text, options = {})
450
+
451
+ markup(:div, class: 'input-block') do |m|
452
+
453
+ m << decorated_label(name, label_text, options)
454
+
455
+ m << text_field(name, options)
456
+
457
+ if options[:maxlength]
458
+
459
+ m.span "(#{options[:maxlength]}文字以内)", class: 'instruction'
460
+
461
+ end
462
+
463
+ m << error_messages_for(name)
464
+
465
+ end
466
+
467
+ end
468
+
469
+
470
+
471
+ def number_field_block(name, label_text, options = {})
472
+
473
+ markup(:div) do |m|
474
+
475
+ m << decorated_label(name, label_text, options)
476
+
477
+ m << form_builder.number_field(name, options)
478
+
479
+ if options[:max]
480
+
481
+ max = view_context.number_with_delimiter(options[:max].to_i)
482
+
483
+ m.span "(最大値: #{max})", class: 'instruction'
484
+
485
+ end
486
+
487
+ m << error_messages_for(name)
488
+
489
+ end
490
+
491
+ end
492
+
493
+
494
+
495
+ def password_field_block(name, label_text, options = {})
496
+
497
+ markup(:div, class: 'input-block') do |m|
498
+
499
+ m << decorated_label(name, label_text, options)
500
+
501
+ m << password_field(name, options)
502
+
503
+ m << error_messages_for(name)
504
+
505
+ end
506
+
507
+ end
508
+
509
+
510
+
511
+ def nickname_field_block(name, label_text, options = {})
512
+
513
+ markup(:div, class: 'input-block') do |m|
514
+
515
+ m << decorated_label(name, label_text, options)
516
+
517
+ m << text_field(name, options)
518
+
519
+ #m.span ' (半角英数字で入力してください。)', class: 'notes'
520
+
521
+ m << error_messages_for(name)
522
+
523
+ end
524
+
525
+ end
526
+
527
+
528
+
529
+ def sponsor1_field_block(name, label_text, options = {})
530
+
531
+ markup(:div, class: 'input-block') do |m|
532
+
533
+ m << decorated_label(name, label_text, options)
534
+
535
+ m << text_field(name, options)
536
+
537
+ m.span ' (紹介者不在の場合はそのまま。)', class: 'notes'
538
+
539
+ m << error_messages_for(name)
540
+
541
+ end
542
+
543
+ end
544
+
545
+
546
+
547
+ def date_field_block(name, label_text, options = {})
548
+
549
+ markup(:div, class: 'input-block') do |m|
550
+
551
+ m << decorated_label(name, label_text, options)
552
+
553
+ if options[:class].kind_of?(String)
554
+
555
+ classes = options[:class].strip.split + [ 'datepicker' ]
556
+
557
+ options[:class] = classes.uniq.join(' ')
558
+
559
+ else
560
+
561
+ options[:class] = 'datepicker'
562
+
563
+ end
564
+
565
+ m << text_field(name, options)
566
+
567
+ m << error_messages_for(name)
568
+
569
+ end
570
+
571
+ end
572
+
573
+
574
+
575
+ def drop_down_list_block(name, label_text, choices, options = {})
576
+
577
+ markup(:div, class: 'input-block') do |m|
578
+
579
+ m << decorated_label(name, label_text, options)
580
+
581
+ m << form_builder.select(name, choices, { include_blank: true }, options)
582
+
583
+ m << error_messages_for(name)
584
+
585
+ end
586
+
587
+ end
588
+
589
+
590
+
591
+ def error_messages_for(name)
592
+
593
+ markup do |m|
594
+
595
+ object.errors.full_messages_for(name).each do |message|
596
+
597
+ m.div(class: 'error-message') do |m|
598
+
599
+ m.text message
600
+
601
+ end
602
+
603
+ end
604
+
605
+ end
606
+
607
+ end
608
+
609
+
610
+
611
+ def decorated_label(name, label_text, options = {})
612
+
613
+ label(name, label_text, class: options[:required] ? 'required' : nil)
614
+
615
+ end
616
+
617
+
618
+
619
+ def bk_name(name, label_text, options = {})
620
+
621
+ markup(:div, class: 'input-block') do |m|
622
+
623
+ m << decorated_label(name, label_text, options)
624
+
625
+ m.div(object.send(name), class: 'field-value')
626
+
627
+ m << hidden_field(name, options)
628
+
629
+ end
630
+
631
+ end
632
+
633
+ end
634
+
635
+ ```