前提・実現したいこと
Ruby on Railsで新規登録機能を実装中にこのエラーが発生しました。
has_secure_passwordを使い新規登録機能を実装したいです。
発生している問題
新規登録ボタンを押すとエラー画面に遷移する。
エラーメッセージ
NoMethodError in HomeController#create undefined method `password_digest=' for #<User:0x000000000d6fe4f8> Did you mean? password=
該当のソースコード
home_controller.rb
class HomeController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) if @user.save flash[:notice] = "会員登録完了" redirect_to("/") else flash[:alert] = "会員登録失敗" render action: :new end end def top end def you @myemail = User.find_by(email:session[:email]) @myid = User.find_by(id:session[:id]) end def kesu end def destroy #退会処理 private def user_params params.require(:@user).permit(:email, :password, :password_confirmation) end end
new.html.erb
<h2>新規登録</h2> <% @user = User.new unless @user %> <%= form_for :@user,:url => {controller: "home", action: "create" } do |f| %> <%= f.email_field :email %> <%= f.password_field :password %> <%= f.submit "新規登録!" %> <% end %>
マイグレーションファイル
class Users < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :email t.string :password t.string :password_digest, null: false t.timestamps end end end
試したこと
def user_params params.require(:@user).permit(:email, :password, :password_confirmation) end
↑を↓にしたがエラーは変わらなかった。
def user_params params.require(:@user).permit(:email, :password, :password_confirmation, :password_digest) end
補足情報
Windows 10 home 64ビット
ruby 2.6.6
Ruby on rails 6.0.3.1
PostgreSQL 12.3
テキストエディタ Atom
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/09 09:09