前提・実現したいこと
ご閲覧ありがとうございます。
レイルズ初心者です。
会員登録機能を作成中ですが、
下記のエラーが出まして、
どうしてもバグ取りがよくわからず、
きました。
発生している問題・エラーメッセージ
Users/new.erb.html のアカウント登録確認ボタンを押すと下記のエラーが出力される
NoMethodError in UsersController#create
undefined method `area' for #User:0x007fb95fc85f58
Extracted source (around line #32):
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
Rails.root: /home/ubuntu/workspace/kamsuki
Application Trace | Framework Trace | Full Trace
app/controllers/users_controller.rb:32:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"YjSiXk5kI6QQtALhuvD4+NXfFejDpa54MkAStjJJM/RSM8tdjKvkFER+WjawTJFTjz9p1zOEGriOaGAk8Afv0Q==",
"user"=>{"name"=>"",
"email"=>"",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"アカウント登録確認"}
Toggle session dump
Toggle env dump
Response
Headers:
None
<h1>Sign up</h1> <h2>ご登録したいアカウントをご記入とご確認の上でアカウント登録確認を押して下さい</h2> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%= form_for(@user) do |f| %> #省略 <%= f.password_field :password_confirmation, class: 'form-control' %> <%= f.submit "アカウント登録確認", class: "btn btn-primary" %> <% end %> </div> </div>
該当のソースコード
users_controller.rb
class UsersController < ApplicationController def new @user = User.new end def show @user = User.find(params[:id]) @microposts = @user.microposts.order(created_at: :desc) end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update(user_params) # 保存に成功した場合はトップページへリダイレクト redirect_to root_path flash[:success] = "プロフィールを更新しました" else # 保存に失敗した場合は編集画面へ戻す render 'edit' end end def create @user = User.new(user_params) if @user.save flash[:success] = "Welcome to the Sample App!" redirect_to @user else render 'new' end end before_action :correct_user, only: [:edit, :update] def followings @user = User.find(params[:id]) @followings = @user.following_users end def followers @user = User.find(params[:id]) @followers = @user.follower_users end private def user_params params.require(:user).permit(:name, :email, :password,:password_confirmation,:area) end def correct_user @user = User.find(params[:id]) redirect_to(root_path) unless @user == current_user end end
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/03 15:11
2018/02/03 15:33