・困っている箇所
投稿機能を付けようとしているのですが、うまく投稿がされないのでrails cから試してみたところ、うまくいきませんでした。
多くのカラムをpresence: trueにしていたので、一度titleカラムだけをtrueにして、titleだけを入力してそもそも登録できるかを試してみたところ、
3.0.0 :010 > plan = user.plans.build(title: 'test') => #<Plan id: nil, title: "test", user_id: 1, photo: nil, detail: nil, start_on: nil, end_on: nil, created_at: nil, updated_at: nil> 3.0.0 :011 > plan.save => false
このように登録できませんでした。
これはどこの箇所がおかしいのでしょうか?
この前の手順の箇所を重点にコードを添付させていただきます。
・カラム
まずカラムの情報なのですが
mysql> describe plans; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | bigint(20) | NO | PRI | NULL | auto_increment | | title | varchar(255) | YES | | NULL | | | user_id | bigint(20) | NO | MUL | NULL | | | photo | varchar(255) | YES | | NULL | | | detail | text | YES | | NULL | | | start_on | date | YES | | NULL | | | end_on | date | YES | | NULL | | | created_at | datetime(6) | NO | | NULL | | | updated_at | datetime(6) | NO | | NULL | | +------------+--------------+------+-----+---------+----------------+ 9 rows in set (0.00 sec)
・マイグレーション
class CreatePlans < ActiveRecord::Migration[6.1] def change create_table :plans do |t| t.string :title t.references :user, null: false, foreign_key: true t.string :photo t.text :detail t.date :start_on t.date :end_on t.timestamps end end end
・モデル
class Plan < ApplicationRecord belongs_to :user validates :title, presence: true, length: { maximum: 50 } validates :photo, presence: false validates :detail, presence: false, length: { maximum: 5000 } validates :start_on, presence: false validates :end_on, presence: false end
これでは情報が足りない場合はコメントして頂けたら幸いです。
この質問で大丈夫か不安ですが、ご解答の程、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/08/28 04:39
退会済みユーザー
2022/08/28 04:47
2022/08/28 05:00
退会済みユーザー
2022/08/28 05:03
退会済みユーザー
2022/08/28 05:06