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

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

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

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

Q&A

1回答

1335閲覧

ツイッター認証後のshowの画面にツイッターのアイコン画像を表示させたいです

i_r__man

総合スコア18

Ruby on Rails 5

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

0グッド

1クリップ

投稿2018/12/30 03:38

編集2018/12/31 03:11

ツイッター認証が完了した後に、プロフィール画面でツイッターのアイコンを表示させたいのですが、うまく表示されません。

アクションは以下の通り

rails

1def create 2 @user = User.find_or_create_from_auth(request.env['omniauth.auth']) 3 if @user.save 4 session[:user_id] = @user.id 5 flash[:notice] = "ユーザ認証が完了しました。" 6 redirect_to("/users/#{@user.id}") 7 end 8 end

モデルは以下の通り

rails

1def self.find_or_create_from_auth(auth) 2 provider = auth[:provider] 3 uid = auth[:uid] 4 user_name = auth[:info][:name] 5 image_url = auth[:info][:image] 6 7 self.find_or_create_by(provider: provider, uid: uid) do |user| 8 user.user_name = user_name 9 user.image_url = image_url 10 end 11 end

ビューは以下の通りです

rails

1<img src="<%="/#{@user.image_url}"%>" class="icon">

どうやら、
画像のURLを取得したときにルーティングエラーが発生していることが原因のようです。

イメージ説明

解決方法がわかる方、お答えいただけると幸いです。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ビューでのプロフィールアイコン表示は以下のように書くとうまくいくと思います。

<img src=<%= @user.image_url %> class="icon">

しかし、エラーがルーティングで発生しているいうことで、ルーティング関連に問題があると思います。
ルーティングの設定やtwitter developerページで登録したアプリの URLやコールバックURLは正しく設定されていますでしょうか?

ルーティングの一例をあげておきます。

ruby:

1get '/auth/:provider/callback', to: 'sessions#create'

いかがでしょうか?

投稿2018/12/31 14:20

tailer

総合スコア62

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問