rails 5.2.3
で開発しています。
問題は解決しているのですが、納得感がないため、質問させてください。
Car
とInspectionReport
というmodel
が2つあり、
car has_many :inspection_reports
とinspection_reports belongs_to :car
でリレーションを持っています。
設定したルートは以下の通りです。
http://localhost:3000/mypage/cars/1/inspection_reports/:id
で特定のcar
がもつinspection_report
をshowで表示したいです。
user_account_car_inspection_report_path(引数)なので、以下の通り記載するのですが
「これで動くはずなのにエラーがでてしまい理由がわからない書き方」にすると、
No route matches {:action=>"show", :car_id=>#<InspectionReport id: 2, car_id: 1, engine_oil_level
と、なせか引数にとったinspection_report
が:car_id
と見做されてしまうエラーが起きます。
なぜこうなってしまうのでしょうか?
ruby
1##これで動くはずなのにエラーがでてしまい理由がわからない書き方 2<% @inspection_reports.each do |report| %> 3 <li class="list-group-item"> 4 <%= link_to user_account_car_inspection_report_path(report) do %> 5 <i class="fas fa-clipboard-list"></i> 6 点検結果 (<%= report.implementation_date.strftime("%Y/%-m/%-d") %> 実施分) 7 <% end %> 8 </li> 9<% end %> 10 11 12##動いている書き方 13<% @inspection_reports.each do |report| %> 14 <li class="list-group-item"> 15 <%= link_to user_account_car_inspection_report_path(:id => report) do %> 16 <i class="fas fa-clipboard-list"></i> 17 点検結果 (<%= report.implementation_date.strftime("%Y/%-m/%-d") %> 実施分) 18 <% end %> 19 </li> 20<% end %> 21 22 23####コントローラー 24def index 25 if params[:car_id] 26 @car = Car.find(params[:car_id]) 27 @inspection_reports = @car.inspection_reports 28 else 29 @current_customer = current_customer 30 @inspection_reports = @current_customer.inspection_reports 31 end 32 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/03 01:44