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

回答編集履歴

2

文字列を整数に直すのを忘れていたので修正

2020/04/24 09:50

投稿

okuramasafumi
okuramasafumi

スコア117

answer CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```
24
24
  d = params[:deadline_date] # ショートカット
25
- deadline_date = Date.new(d['date(1i)'], d['date(2i)'], d['date(3i)'])
25
+ deadline_date = Date.new(d['date(1i)'].to_i, d['date(2i)'].to_i, d['date(3i)'].to_i)
26
26
  @event = Event.new( deadline_date: deadline_date )
27
27
  ```
28
28
 

1

日付の保存について追記

2020/04/24 09:49

投稿

okuramasafumi
okuramasafumi

スコア117

answer CHANGED
@@ -8,4 +8,23 @@
8
8
  end
9
9
  ```
10
10
 
11
- のようなコードを`create`アクションに追加してみてください(その際、成功と失敗には適切なレンダー処理を記述しましょう)。
11
+ のようなコードを`create`アクションに追加してみてください(その際、成功と失敗には適切なレンダー処理を記述しましょう)。
12
+
13
+ ---
14
+
15
+ 日付の保存自体に失敗しているということでしたら、
16
+
17
+ ```
18
+ @event = Event.new( deadline_date: params[:deadline_date] )
19
+ ```
20
+
21
+ このコードを、
22
+
23
+ ```
24
+ d = params[:deadline_date] # ショートカット
25
+ deadline_date = Date.new(d['date(1i)'], d['date(2i)'], d['date(3i)'])
26
+ @event = Event.new( deadline_date: deadline_date )
27
+ ```
28
+
29
+ のようにすると保存できるようになると思います。
30
+ ここで行っているのは`Date`オブジェクトの明示的な生成です。要はバラバラに渡ってきている日付のデータを結合して日付のオブジェクトにしているわけですね。