こんばんは、ピチピチの社会人です。
本日はRailsで起きたエラーについてです。
問題
RailsでCRUD処理について学んでいる時、ルート、コントロール、ビューの順にコードを書き、rails sをした時に以下のエラー文が出ました。
エラー表示怖すぎ、、とりあえずエラー文を読んでみる。
色々調べてみるとどうやらビューファイルに問題があるらしい。
routes.rb
Rails.application.routes.draw do
get '/users/new', to: 'users#new'
post '/users', to: 'users#create'
end
users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
User.create(user_params)
end
private
def user_params
params.require(:user).permit(:name, :age)
end
end
new.html.erb
<p>新規投稿</p>
<%= form_with model: @user, url: "/users", method: :post, local: true do |f| %>
<p>お名前:<%= f.text_field :name %></p>
<p>年齢:<%= f.text_field :age %></p>
<%= f.submit "送信" %>
<% end %>
どこも間違えてる気がしないんですけど、、
原因
いくら考えてもコードの間違いが見つからず、いくら調べてもわからない。
結局一から作成し直すと、先ほど作ったnew.html.erbがusersではなくlayoutsディレクトリに格納されていたことが判明。そりゃエラー出るわ。
対策
分からなかったら素直に人に聞くこと。今回も自分で解決しようとして一時間ほど時間を無駄にしてしまったからある程度自分で考えて、分からなければ恥を忍んで聞くこと。
以上、最近プログラミング学習を始めたピチピチの社会人でした。