はじめまして。
症状はタイトルの通りです。どういった順序でそういった症状が起こるのかというと…
① /signup にて、アカウント情報の登録を行う。
以下の情報で登録を行いました。
Name : testtest
Email : abc@abc.com
password : aaaaaaaa1
Confirmation : aaaaaaaa1
② Create my accountボタンを押すと、以下のような画面が表示される。
エラー内容が、「フォームにエラーが3つあります。①パスワードの欄が空です ②パスワードの欄が空です ③パスワードが6文字未満です。」という記載です。
と言った状態です。
参考になると思われる情報といたしましては、
①当該サーバーログ
Started POST "/signup" for 114.158.180.27 at 2018-08-27 12:29:02 +0000 Cannot render console from 114.158.180.27! 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"=>"/5mjQNvuP/DdixxpEkiD1eJruvvZJZpgWc+JsI59XqbieguxxG2trAsazmypzLXbUK+mcfrrCnLqpwIZ2XXd5A==", "user"=>{"name"=>"testtest", "email"=>"abc@abc.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create my account"} Unpermitted parameter: :password (0.1ms) begin transaction User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER(?) LIMIT ? [["email", "abc@abc.com"], ["LIMIT", 1]] (0.0ms) rollback transaction Rendering users/new.html.erb within layouts/application Rendered shared/_error_messages.html.erb (0.7ms) Rendered users/new.html.erb within layouts/application (3.5ms) Rendered layouts/_rails_default.html.erb (25.8ms) Rendered layouts/_shim.html.erb (0.2ms) Rendered layouts/_header.html.erb (0.5ms) Rendered layouts/_footer.html.erb (0.3ms) Completed 200 OK in 41ms (Views: 36.2ms | ActiveRecord: 0.3ms)
②user.rb
app/models/user.rb
1class User < ApplicationRecord 2 before_save { self.email = email.downcase } 3 validates :name, presence: true, length: { maximum: 50 } 4 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i 5 validates :email, presence: true, length: { maximum: 255 }, 6 format: { with: VALID_EMAIL_REGEX }, 7 uniqueness: { case_sensitive: false } 8 has_secure_password 9 validates :password, presence: true, length: { minimum: 6 } 10end 11
③/signupのビューファイル
app/views.html.erb
1<% provide(:title, 'Sign up') %> 2<h1>Sign up</h1> 3 4<div class="row"> 5 <div class="col-md-6 col-md-offset-3"> 6 <%= form_for(@user , url: signup_path ) do |f| %> 7 <%= render 'shared/error_messages' %> 8 9 <%= f.label :name %> 10 <%= f.text_field :name, class: 'form-control' %> 11 12 <%= f.label :email %> 13 <%= f.email_field :email,class: 'form-control' %> 14 15 <%= f.label :password %> 16 <%= f.password_field :password, class: 'form-control' %> 17 18 <%= f.label :password_confirmation, "Confirmation" %> 19 <%= f.password_field :password_confirmation, class: 'form-control' %> 20 21 <%= f.submit "Create my account", class: "btn btn-primary" %> 22 <% end %> 23 </div> 24</div> 25
私は、パスワードやEmailのバリデートに問題があるか、ビューのタグに問題があって正常にフォームのデータが送信出来ずにこのようなこと起きているのだと思いますが、Rails tutorialの内容を再度読んでみても、どこが悪いか等が全くわかりません。また、またサーバーログに出現する"rollback transaction"等検索をしてみましたが、これと言った解決策がなく、前に進むことができずに困っています。
初心者の質問であり、多々突っ込みどころがあるとは思うのですが、必要な情報があればその都度開示したいと思っておりますので、是非、ご教授頂けないでしょうか。
よろしくお願いいたします。
あなたの回答
tips
プレビュー