質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

579閲覧

POSTでデータベースに情報を登録し、正しくページ遷移することができない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/01/24 15:35

編集2018/01/25 00:54

前提・実現したいこと

(プログラミング初心者のため用語の使い方がおかしいかもしれません。)

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に戻ってしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h_daido

2018/01/25 07:04 編集

routes.rbの内容もはってもらえますか?というのも、/users/newに対してPOSTが投げられるのはrailsだとあまりやらないルーティングです。詳しくはhttps://railsguides.jp/routing.html の「2.2 CRUD、動詞、アクション」をみてみるとよいかもしれません。
guest

回答1

0

IP 制限の為に保存に失敗しているからです。

https://stackoverflow.com/questions/29417328/how-to-disable-cannot-render-console-from-on-rails
などを参照して、アクセス元のIP アドレスをホワイトリストに入れてください。

いまは if @user.save() でエラーがでるので、else に行きます。
render はページはそのままでビューを切り替える関数なので、 /new に遷移したままになります。

投稿2018/01/24 17:24

kero1209

総合スコア431

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/25 00:42

すみません、「試したこと」に書き忘れていたのですが、 config.web_console.whitelisted_ips = '192.168.33.1' をconfig/environments/developments.rb(およびconfig/application.rb)に加えることも既に試しました。 結果は変わらず/newに戻ってきてしまいます。
kero1209

2018/01/26 00:37

https://github.com/rails/web-console の設定からローカルアドレスを全て許可してみてもだめすか? Rails.application.configure do config.web_console.whitelisted_ips = '192.168.0.0/16' end
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問