前提・実現したいこと
rialsでお金管理のwebアプリを作成中です。
個々の入出金データにuser_idを付けて一覧表示させています。
saveするとdbにデータは保存されるのに下記のようなエラーが出てきて困っています。
発生している問題・エラーメッセージ
NoMethodError in CashController#index undefined method `id' for nil:NilClass Extracted source (around line #4): def index @client = Client.find_by(id: params[:id]) @cashes = Cash.where(user_id: @client.id ) ♯4 end
該当のソースコード
controller
1class CashController < ApplicationController 2 def index 3 @client = Client.find_by(id: params[:id]) 4 @cashes = Cash.where(user_id: @client.id ) 5 end 6end
controller
1 def create 2 @client = Client.find_by(id: params[:id]) 3 4 @cash_new = Cash.new( 5 user_id: params[:user_id], 6 trading_day: params[:trading_day], 7 principal: params[:principal], 8 savings_account: params[:savings_account], 9 receipt_of_payment: params[:receipt_of_payment], 10 memo: params[:memo] 11 ) 12 13 if @cash_new.save 14 15 flash[:notice] = "新規登録されました" 16 17 redirect_to("/cash/:id/index") 18 else 19 render("cash/index") 20 end 21```end 22 23```view 24<%= form_tag("/cash/create") do %> 25 <p>user_id: <label><input type="number" name="user_id" value=<%= @client.id %>></label> 26 </p> 27 <p>trading_day: <label><input type="date" name="trading_day"></label> 28 </p> 29 <p>receipt_of_payment: <label><input type="date" name="receipt_of_payment"></label> 30 </p> 31 <p>principal: <label><input type="number" name="principal" value=0></label> 32 </p> 33 <p>savings_account: <label><input type="number" name="savings_account" value=0></label> 34 </p> 35 <p>memo: <label><input type="name" name="memo"></label> 36 </p> 37 <p><label><input type="submit" value="登録"></p> 38<% end %> 39 40<% @cashes.each do |cash| %> 41 <p> 42 <%= cash.user_id %> 43 <%= cash.trading_day %> 44 <%= cash.receipt_of_payment %> 45 <%= cash.principal.to_s(:delimited) %> 46 <!--.to_s(:delimited)=数値をカンマ区切り--> 47 <%= cash.savings_account.to_s(:delimited) %> 48 <%= cash.memo %> 49 <%= link_to("編集","/cash/#{cash.id}/edit") %> 50 <%= link_to("削除","/cash/#{cash.id}/destroy", 51 {method:"post"}) %> 52 </p> 53<% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 04:15