Я нахожусь в центре Rails Tutorial.Я думал, что я почти закончил главу 7, но когда я попытался зарегистрировать из браузера то, что я сделал, проверка не проходит.Не могли бы вы сказать мне, почему и что происходит?
Я попытался посмотреть примеры кодов здесь.https://github.com/yasslab/sample_apps/tree/master/5_1_2/ch07, но я не смог найти решение этой ошибки.
Появляется на аватаре.
--- !ruby/object:ActionController::Parameters
parameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: "✓"
authenticity_token: uXdA0mb2W613nUOFg8K47fR9pvmwv69wxwByuzE+DF9SbMhQIPsuLEGsZyax9tmDJAyw4x9ektFwqcQ0dVqvgw==
user: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
name: Rails Tutorial
email: example@railstutorial.org
password: pokopoko
password_confirmation: pokopoko
commit: Create my account
controller: users
action: create
permitted: false
# users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(params[:user_params])
if @user.save
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
end
# user.rb
class User < ApplicationRecord
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }, allow_nil: true
end
это журнал ошибок.
Started POST "/signup" for 160.86.161.32 at 2019-02-05 02:14:40 +0000
Cannot render console from 160.86.161.32! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"uXdA0mb2W613nUOFg8K47fR9pvmwv69wxwByuzE+DF9SbMhQIPsuLEGsZyax9tmDJAyw4x9ektFwqcQ0dVqvgw==", "user"=>{"name"=>"Rails Tutorial", "email"=>"example@railstutorial.org", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create my account"}
(0.1ms) begin transaction
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE "users"."email" IS NULL LIMIT ? [["LIMIT", 1]]
(0.1ms) rollback transaction
Rendering users/new.html.erb within layouts/application
Rendered shared/_error_messages.html.erb (1.1ms)
Rendered users/new.html.erb within layouts/application (4.1ms)
Rendered layouts/_shim.html.erb (0.3ms)
Rendered layouts/_header.html.erb (0.5ms)
Rendered layouts/_footer.html.erb (0.4ms)
Completed 200 OK in 44ms (Views: 39.2ms | ActiveRecord: 0.3ms)
если я изменил if @user.save
на if @user.save!
другое сообщение об ошибке
Проверка не удалась: Имя не может быть пустым, электронная почта не может быть пустой, электронная почта недействительна, пароль не может быть пустым