株式会社万葉さんのカリキュラムに沿ってタスク管理アプリを作っている新米エンジニアです。
end_time
というカラムをdefault
設定で本日の日程を設定してあげたいのですが
viewでend_time
を空で入力した際に空であるエラーが出てしまいます。
XXXAddTask
1def change 2 add_column :tasks, :end_time, :datetime, null: false, default: -> { 'NOW()' } 3 end
schema
1create_table "tasks", force: :cascade do |t| 2 t.string "name", limit: 20, null: false 3 t.string "memo", limit: 100 4 t.datetime "created_at", precision: 6, null: false 5 t.datetime "updated_at", precision: 6, null: false 6 t.datetime "end_time", default: -> { "now()" }, null: false 7 end
form
1.container 2 = form_with(model: @task, local: true, class: 'task_header') do |f| 3 == render 'shared/error', model: f.object 4 ul 5 li 6 = f.label :name 7 = f.text_field :name, placeholder: '20文字制限' 8 li 9 = f.label :memo 10 = f.text_area :memo 11 li 12 = f.label :end_time 13 = f.date_field :end_time 14 li 15 = f.submit "Submit"
model
1class Task < ApplicationRecord 2 validates :name, length: { maximum: 20 }, presence: true 3 validates :memo, length: { maximum: 100 } 4 validates :end_time, presence: true 5 6 validate :date_not_before_today 7 8 def date_not_before_today 9 unless end_time.nil? 10 errors.add(:end_time, "は明日以降のタスクを選択してください") if end_time < Time.zone.today 11 end 12 end 13end
エラー状況
console
1Task.new(name:"new", memo:"new memo") 2=> #<Task:0x00007fb42cc7a6e0 id: nil, name: "new", memo: "new memo", created_at: nil, updated_at: nil, end_time: nil>
この解法が分かる方がいらっしゃいましたら
よろしくお願い致します。????♂️
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/11 07:11