前提・実現したいこと
Ruby on railsで会員登録機能を実装中にエラーが発生しました。
PG::UndefinedTable: ERROR: relation "users" does not existを解決したいので質問させて頂きます。
発生している問題・エラーメッセージ
ActiveRecord::StatementInvalid in Home#new Showing C:/Users/R/butube/app/views/home/new.html.erb where line #1 raised: PG::UndefinedTable: ERROR: relation "users" does not exist LINE 8: WHERE a.attrelid = '"users"'::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, c.collname, col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation WHERE a.attrelid = '"users"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
該当のソースコード
<% @user = User.new unless @user %> <%= form_for @user,:url => {controller: "home", action: "create" } do |f| %> <p>名前</p> <%= f.text_field :name %> <p>user_id</p> <%= f.text_field :user_id %> <p>メールアドレス</p> <p>*実在しないメールアドレスを記入した場合使える機能に制限が設けられる場合があります。</p> <%= f.email_field :email %> <p>パスワード</p> <%= f.text_field :password %> <br> <%= f.submit "新規登録!" %> <% end %>
20200507090359_create_users.rb
1class CreateUsers < ActiveRecord::Migration[5.2] 2 def change 3 create_table :users do |t| 4 t.text :name 5 t.text :user_id 6 t.text :email 7 t.text :password 8 t.integer :level 9 t.integer :contribution 10 11 t.timestamps 12 end 13 end 14end 15
試したこと
1行目の
<% @user = User.new unless @user %>
がエラーの原因のようなのでコメントアウトしました。すると「First argument in form cannot contain nil or be empty」と表示されるのでコメントアウトを外しました。
コントローラーでは下のように@userを定義しているはずです。
app/controllers/home_controller.rb
1def new 2 @user = User.new 3 end
補足情報
Windows 10 home
Ruby on rails 5.2.4
ruby 2.6.6
PostgreSQL 12.2
失礼な点や情報不足なところがありましたら申し訳ありません。
どうぞよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー