バリデーションを設けているが、valid?を行ってもtrueが返ってきてしまう。モデルにはバリデーションを設定しております。おそらく、テーブルでのnullオプションで弾かれて保存されていないようです。ただ、バリデーションはすり抜けられてしまいます。
class DocumentsController < ApplicationController def index @user_name = current_user.name end def new @document = DocumentFolder.new end def create! @document = DocumentFolder.new(document_params) # @folder = Folder.new if @document.valid? @document.save return redirect_to root_path else render "new" end end private def document_params params.require(:document_folder).permit(:document_name, :folder_name, :image).merge(user_id: current_user.id) end end
class DocumentFolder include ActiveModel::Model attr_accessor :document_name, :folder_name, :image, :user_id # バリデーション validates :document_name, presence: true validates :folder_name, presence: true validates :image, presence: true # validates :folder, presence: true # validates :user, presence: true def save @folder = Folder.create(folder_name: folder_name, user_id: @user_id) Document.create(document_name: document_name, image: image, user_id: @user_id, folder_id: @folder.id) end end
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。