前提・実現したいこと
(プログラミング初心者のため用語の使い方がおかしいかもしれません。)
railsでユーザー登録機能を作っています。
form_tagでinputに入力された情報をデータベースに登録したいのですが、
レコード追加もできず、想定していたページ遷移も起こりません。
bcryptを導入していますが、has_secure_passwordメソッドをモデルから削除しても同じ問題が発生します。
発生している問題・エラーメッセージ
Started POST "/users/new" for 192.168.33.1 at 2018-01-24 23:52:29 +0900 Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by UsersController#new as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"rrINnZlFrJmwVUQsdR8y+zIcd9nXPNvf8e7Zv2j74LCs/yp05aKREBYvc2ucNzqAzWltPT72olJ/YBxdPoFb3Q==", "name"=>"なまえ", "email"=>"メアド", "password"=>"[FILTERED]"} Rendering users/new.html.erb within layouts/application Rendered users/new.html.erb within layouts/application (0.3ms) Completed 200 OK in 34ms (Views: 30.7ms)
該当のソースコード
ビュー
HTML
1<div class="main"> 2 <div class="login-form"> 3 <h2 class="signup-text">新規登録</h2> 4 <% if @error_message %> 5 <div class="error-message"> 6 <p><%=@error_message %></p> 7 </div> 8 <% end %> 9 <%=form_tag("/users/new") do %> 10 <input type="text" name="name" placeholder="名前"><br> 11 <input type="text" name="email" placeholder="メールアドレス"><br> 12 <input type="password" name="password" placeholder="パスワード"><br> 13 <input type="submit" class="btn signup-button" value="登録"> 14 <% end %> 15 </div> 16</div> 17
コントローラ
Ruby
1def new 2 @user = User.new(name: params[:name], email: params[:email], password: params[:password]) 3 if @user.save 4 redirect_to("/top") 5 else 6 render("users/sign_up") 7 end 8 end
試したこと
最初に出てきたエラーメッセージに
No template found for UsersController#new, rendering head :no_content
とあったため、newメソッドに対応するビューファイルとしてnew.html.erbを作成したところ、このビューファイルのページに飛ぶようになりました。
GETメソッドとしてルーティングを設定したわけではないにもかかわらず/topにも/users/sign_upにも遷移せず、/newに遷移するようになった理由がわかりません。
補足
「試したこと」に書き忘れていましたが、
ipアドレスをホワイトリストに入れても同じエラーが発生します。
また、elseの処理をifと同じredirect_to("/top")に書き換えても/newに戻ってしまいます。