J'étais accro à la sauvegarde du modèle lors de la création du portfolio. J'en ai pris note car il a été résolu en utilisant une gemme appelée "pry-rails".
J'ai créé le code et la méthode suivants.
records_controller.rb
class User::RecordsController < User::Base
##Omission...
  def create
    @record = current_app_user.records.build(record_params)
    if @record.save
      flash[:success] = 'Entré avec succès'
      redirect_to user_root_url
    else
      flash.now[:danger] = 'N'a pas réussi à entrer'
      render :new
    end
  end
##Omission...
  private def record_params
    params.require(:record).permit(
      :material,
      :study_date,
      :study_hour,
      :study_minute,
      :memo,
    )
  end
end
Nom du modèle: record Les colonnes sont les suivantes.
["id", :integer]
["material", :string] #Je veux mettre du matériel pédagogique
["study_date", :date] #Je veux mettre une date
["study_hour", :integer] #Je veux mettre du temps d'étude
["study_minute", :integer] #Je veux mettre du temps d'étude (minute)
["memo", :string] #Je veux mettre un mémo
["app_user_id", :integer]
["created_at", :datetime]
["updated_at", :datetime]
Ajout de ce qui suit au Gemfile
Gemfile.
group :development, :test do
  gem 'pry-rails'
end
Installation groupée dans le terminal
$bundle install
Ajouté à Create Method
records_controller.rb
class User::RecordsController < User::Base
##Omission...
  def create
    binding.pry #Ajoutez celui-ci! !!
    @record = current_app_user.records.build(record_params)
    if @record.save
##Omission...
  
Ensuite, essayez de sauvegarder. Ensuite, l'interface graphique passe en état de veille Le fonctionnement en ligne de commande est possible sur le terminal. L'écran ci-dessous s'affiche.
From: /apps/study-meter/app/controllers/user/records_controller.rb:20 User::RecordsController#create:
    19: def create
 => 20:   binding.pry
    21:   @record = Record.new(record_params)
    22:   if @record.save
    23:     flash[:success] = 'Entré avec succès'
    24:     redirect_to user_root
    25:   else
    26:     flash.now[:danger] = 'N'a pas réussi à entrer'
    27:     render :new
    28:   end
    29: end
[1] pry(#<User::RecordsController>)>
Entrez maintenant les paramètres. Puis
[1] pry(#<User::RecordsController>)> params
=> <ActionController::Parameters {"authenticity_token"=>"y5Y+hutJRPbyX9VM0lpiIax4hfeF5TXoykVL35fLQV727TmH/+/f/qncyRtDaANL1h5kqIOErcrGRhfCYuYCKg==", "record"=>{"study_date"=>"2020-07-14", "memo"=>"Histoire japonaise", "study_hour"=>"0", "study_minute"=>"3"}, "commit"=>"Publier", "host"=>"study-meter.com", "controller"=>"user/records", "action"=>"create"} permitted: false>
Si vous regardez cela, vous pouvez voir quelle valeur vous essayiez de mettre dans quelle colonne. J'essayais de mettre un mémo dans la colonne "mémo", et j'essayais de mettre "l'histoire du Japon" dans la colonne matérielle.
Même ainsi, il y a une histoire japonaise dans la colonne mémo, et il n'y a pas d'entrée dans la colonne matériel en premier lieu. Là, je remarque que c'est "drôle".
Parce que le matériau avait une contrainte non nulle "Le matériel n'est pas bon avec nul, mais qu'est-ce que cela signifie d'essayer de le sauver comme nul?" La sauvegarde n'a probablement pas fonctionné.
・ La méthode devrait être correcte -Colonne non intentionnelle Vous essayez d'entrer une colonne non souhaitée
À partir de là, j'ai pu découvrir que la manière d'écrire le formulaire de vue est étrange. Effectivement, le code là-bas était étrange, alors je l'ai corrigé et résolu.
pry-rails était une bibliothèque très utile pour identifier la cause d'une erreur.