Railsでログインシステムを作成しようとしていますが、登録ページに行くと「#の未定義メソッド `first_name '」というエラーが表示されます。 "first_name"列のユーザーデータベースを調べて、 "users"テーブルの唯一の列が "id"、 "created_at"、および "updated_at"であることを確認しました。新しいappname -d mysqlを使ってアプリケーションを作成しました。mysql2 gemを持っていて、databases.ymlファイルを更新しました。「rake db:migrate」を実行しました。まだ、何も動作しません。これをどうすれば解決できますか?これは私のユーザーのコントローラである:ここでRailsマイグレーションファイルがMysqlデータベースに追加されていません
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
session[:user_id] = @user.id
redirect_to '/login'
else
redirect_to '/signup'
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :email, :password)
end
end
は私のルータである:ここでは
Rails.application.routes.draw do
root 'main#index'
get '/login' => 'sessions#new'
get '/signup' => 'users#new'
resources :users
post 'login' => 'sessions#create'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
は私のモデルである:ここでは
class User < ApplicationRecord
has_secure_password
end
は私のマイグレーションファイルです:
class CreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :first_name
t.string :last_name
t.string :email
t.string :password_digest
t.timestamps
end
end
end
ここに私の見解があります:
<div class="login">
<div class="container">
<div class="form">
<h1>Sign up</h1>
<%= form_for(@user) do |f| %>
<%= f.text_field :first_name, :placeholder => "First name" %>
<%= f.text_field :last_name, :placeholder => "Last name" %>
<%= f.email_field :email, :placeholder => "Email" %>
<%= f.password_field :password, :placeholder => "Password" %>
<%= f.submit "Create an account", class: "btn-submit" %>
<% end %>
</div>
</div>
</div>
私はあなたがデシベルでの移行をやり直すしようとする場合がありますUbuntuの16.04で
あなたが再移行しようとすることができ、最後の移行 –
は、私はそれを試してみました、それが働きました。ありがとうございました! –