質問編集履歴

1

コードのスクリーンショットでは、回答者の方への配慮が足りないと思い、コードの記述に変更しました。

2022/01/25 07:18

投稿

bon96
bon96

スコア21

test CHANGED
File without changes
test CHANGED
@@ -12,15 +12,62 @@
12
12
 
13
13
  ### 現在のVsコードの記述↓
14
14
  <マイグレーション>
15
+ ```ruby
16
+ class CreateForms < ActiveRecord::Migration[6.0]
17
+ def change
18
+ create_table :forms do |t|
19
+ t.string :last_name_kana, null: false
20
+ t.string :first_name_kana, null: false
21
+ t.string :phone_number, null: false
22
+ t.string :number_of_people, null: false
15
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-25/076d02cd-2f35-4d48-ae28-8eff8aa1edb2.png)
23
+ t.integer :seat, null: false, default: 0
24
+ t.datetime :datetime, null: false
16
25
 
26
+ t.timestamps
27
+ end
28
+ end
29
+ end
30
+
31
+ ```
17
32
  <コントローラー>
33
+ ```ruby
34
+ class FormsController < ApplicationController
35
+
36
+ def index
37
+ @form = Form.new
38
+ end
39
+
40
+ def create
41
+ @form = Form.new(form_params)
42
+
43
+ end
44
+
45
+ private
46
+
47
+ def form_params
18
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-25/9d6768a0-5f2a-4ae3-b4ae-4738f9ab4bef.png)
48
+ params.require(:form).permit(:last_name_kana, :first_name_kana, :phone_number, :number_of_people, :seat, :datetime)
49
+ end
50
+ end
51
+ ```
19
52
 
20
53
  <モデル>
21
- ![
54
+ ```ruby
22
- ](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-25/bb2a00a0-dba7-40f3-8938-bbb21325b02c.png)
55
+ class Form < ApplicationRecord
56
+ enum seat: { table: 0, counter: 1}
23
57
 
58
+ with_options presence: true do
59
+ validates :last_name_kana, format: { with: /\A[ァ-ヶー-]+\z/, message: 'is invalid. Input full-width characters.'}
60
+ validates :first_name_kana, format: { with: /\A[ァ-ヶー-]+\z/, message: 'is invalid. Input full-width characters.'}
61
+ validates :number_of_people, numericality: { only_integer: true, message: 'is invalid. Input only number'}
62
+ validates :datetime
63
+ end
64
+
65
+ VALID_PHONE_REGEX = /\A\d{10}$|^\d{11}\z/
66
+ validates :phone_number, presence: true, format: { with: VALID_PHONE_REGEX }
67
+ validates :phone_number, numericality: { only_integer: true, message: 'is invalid. Input only number' }
68
+
69
+ end
70
+ ```
24
71
  ### enumを用いるために行った記述
25
72
  1つめ
26
73
  ```ruby:form.rb
@@ -35,11 +82,14 @@
35
82
  bund installしました
36
83
 
37
84
  3つめ
85
+ ```ruby:config>locales>ja.yml
38
- ![
86
+ ja:
87
+ enums:
88
+ form:
89
+ seat:
90
+ table: テーブル席
39
- ](https://ddjkaamml8q8x.cloudfront.net/questions/2022-01-25/d8cb42c3-4cd1-4bbe-8d80-fb2fdc9c5cb6.png)
91
+ counter: カウンター席
40
-
92
+ ```
41
-
42
-
43
93
  #### 今回の問題点
44
94
  ・予約フォームへ遷移するとき、保存するときにエラーが出る
45
95
  ・リロードすると、エラーが出なくなり、DBに保存もできる