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

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

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

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

1回答

177閲覧

Rails&PostgreSQLでTwitter認証を実装したいのですが、ユーザー情報がDBに保存されません

watasuke

総合スコア27

Ruby on Rails 5

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2018/08/08 14:55

編集2018/08/08 15:05

のちのちHerokuを利用したいと思っていたためPostgreSQLを使うため、

ruby

1rails new myapp --database=postgresql

でプロジェクトをつくりました。

その後、以下を参考にTwitter認証機能をつくりました。
https://qiita.com/puremoru0315/items/f1d459b663fd3b715dee

Twitter認証をしようとすると、エラーなどは起きないのですが、肝心のユーザー情報がDBに保存されません。
なお、rails consoleで手動で入力したときにはDBにはデータは入ることを確認済みです。

また、同様のことをSQLite3で実装したときには特に問題なく動作しました。
どこに問題があるでしょうか?

以下、DBにデータを保存するときの処理です。

Ruby

1class SessionsController < ApplicationController 2 def create 3 user = User.find_or_create_from_auth(request.env['omniauth.auth']) 4 session[:user_id] = user.id 5 flash[:notice] = "ユーザー認証が完了しました。" 6 redirect_to root_path 7 end 8end

"ユーザー認証が完了しました。"というflashは表示されるのですが、実際にはDBに情報は入っていないのです…
直接的な解決方法でなくても、デバッグの方法などあれば教えていただけますと幸いです。

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

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

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

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

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

guest

回答1

0

自己解決

データの書き込み時にバリデーションをかけていたことが原因でした……
それを外したらうまくいきました

投稿2018/08/09 03:33

watasuke

総合スコア27

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問