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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1407閲覧

Ruby on Rails : 新規登録からの操作がおかしいです!

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Ruby on Rails

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

0グッド

1クリップ

投稿2017/06/26 07:49

編集2017/08/10 12:13

どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!

どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!
どこが原因なのでしょうか?
教えてください!

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

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

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

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

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

moke

2017/06/26 10:07 編集

rails のヴァージョンは必ず書いてください。scaffold も device等のgemも使わなかったのですか?使っているもしくは使おうとした痕跡があれば表記してください、少しでも、railsのテンプレートを利用している場合、users_controller.rbにはbefore_action等のmethodがあるはずです。一部ではなくclass全部privatemethod等も表記してください。
moke

2017/06/27 03:12 編集

あとApplicationControllerもお願いします。 forbid_login_userのmethodがなにをやっているかわからないとなんとも
退会済みユーザー

退会済みユーザー

2017/06/27 03:14

申し訳ございません。scaffold も device等は使っておりません。gem,classの全てとApplicationControllerは追記いたしました。
moke

2017/06/27 03:14

あと一応、Userの登録自体は成功しているのかをお教えください。
退会済みユーザー

退会済みユーザー

2017/06/27 03:15

データベースを確認したところ、ユーザー登録のデータは保存されております。
moke

2017/06/27 03:36 編集

ありがとうございます。 redirect_to("/users/#{@user.id}")時にUsersControllerが別インスタンスになるので、sessionが消えて(普通消えない) @current_userがnilのままshowが呼び出されるのでloginに飛ばされるようです。 原因はよくわかりませんが、ブラウザ依存ではないですか? 確認してくださいこちらでも少し調べて見ます。
退会済みユーザー

退会済みユーザー

2017/06/27 03:36

別のインスタンスになるのは、どうすれば良いのでしょうか?質問ばかりで申し訳ございません。
moke

2017/06/27 03:39 編集

別インスタンスになるのは仕様です。sessionとは関係ないはずなんですが…。ブラウザによってそうゆう動作が起こることがあるとかないとか、うろ覚えなんで、とりあえず少し調べますね。
退会済みユーザー

退会済みユーザー

2017/06/27 03:46

そんなことがあるんですか!!お手数おかけしてしまい申し訳ございません。
moke

2017/06/27 03:51

あっApplicationControllerに protect_from_forgery with: :exception が入っていませんね一応before_actionの前に、追記して見てください
退会済みユーザー

退会済みユーザー

2017/06/27 03:56

はい!ありがとうございます!試してみます!
moke

2017/06/27 04:15 編集

まあ、なんにせよCSRF対策周辺が絡んでいると思います。protect_from_forgery with: :exceptionでCSRF対策が有効になるので
guest

回答1

0

ベストアンサー

コピペして実装しました。ファイルがいろいろと無いので、取り敢えず、コントローラの
before_action :forbid_login_user, {only: [:new, :create, :login_form, :login]}
だけはコメントアウトして動かしています。

新規ユーザー登録のあと、うまく/users/:id に遷移していますよ。

もしそれでも、うまくいかないようであれば、疑わしきは、
before_action :authenticate_user, {only: [:index, :show, :edit, :update]}
の :show ですか?
一度、ぜんぶ外して試してみてはいかがでしょうか?
間違っていたらごめんなさい。失礼します。。

投稿2017/07/04 11:22

tuvalu

総合スコア136

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

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

退会済みユーザー

退会済みユーザー

2017/07/05 13:14

ありがとうございます。解決しました。
tuvalu

2017/07/06 00:46

よかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問