前提・実現したいこと
Ruby on Railsで体重管理アプリを作成しています。
recordコントローラーのcreateアクションでNoMethodErrorがでてしまいます。
体重をフォームから打ち込んで、Sendを押すとエラーがでるので
解決したいです。
発生している問題・エラーメッセージ
NoMethodError in RecordsController#create undefined method `records' for nil:NilClass
該当のソースコード
Ruby
1 2class RecordsController < ApplicationController 3 # before_action :authenticate_user![:index] 4 before_action :correct_user, only: [:destroy] 5 6 def index 7 @user = current_user 8 end 9 10 def new 11 @record = Record.new 12 @user = current_user 13 end 14 15 def create 16 @record = @user.records.build(record_params) 17 if @record.save 18 flash[:notice] = '体温を投稿しました。' 19 else 20 @records = current_user.records.includes(:user) 21 flash[:alert] = '体温の投稿に失敗しました。' 22 end 23 redirect_to root_path 24 end 25 26 private 27 28 def record_params 29 params.require(:record).permit(:value, :date).merge(user_id: current_user.id) 30 end 31 def correct_user 32 @record = current_user.records.find_by(id: params[:id]) 33 unless @record 34 redirect_to root_url 35 end 36 end 37end 38
createアクションの一行目のrecordsでエラーがでています。
試したこと
current_userがnilかと思ったのですが、
index、newでは正常に作動しています。
補足情報(FW/ツールのバージョンなど)
Ruby
1Rails.application.routes.draw do 2 devise_for :users 3 root to: "records#index" 4 resources :records, only: [:index, :new, :create] 5 resources :users, only: [:edit, :update] 6end
他に必要なコードがあれば、教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 02:29 編集
2020/05/06 02:29
2020/05/06 02:30
2020/05/06 02:33 編集
2020/05/06 02:37