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

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

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

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

Q&A

解決済

1回答

2606閲覧

devise機能で各ユーザーのプロフィールが見たい

hayabusakk

総合スコア16

Ruby on Rails

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

0グッド

0クリップ

投稿2017/04/14 11:52

編集2017/04/15 08:13

各ユーザーのプロフィールが見たい

背景
deviseでログイン機能を作り、作ったUserモデルにプロフィール用に、いくつかのカラムを追加しました。

作りたい機能
userのindexページの時に、名前を押すと、各ユーザーのプロフィールに飛びたい。

問題点
どのユーザーを押しても、今ログインしているユーザーのプロフィールに飛んでしまう。

rails

1コード 2class UsersController < ApplicationController 3 before_action :authenticate_user! 4 def index 5 @users = User.all 6 end 7 8 def show 9 @user = User.find(params[:id]) 10 11 end 12end 13 14 15 16 indexページ 17 18<% @users.each do |user| %> 19 <div class="col-xs-3 col-md-2"> 20 21 <% if user.userface? %> 22 <%= image_tag user.userface %> 23 <% else %> 24 <%= image_tag("userfacenoimage.png", :size => "90x90") %> 25 26 <% end %><br> 27 28 29 <div class="text-primary"> 30 <%= link_to("#{user.username}のページだよ。", user_path(user.id) ) %> 31 32 33 </div> 34 </div> 35 36 <% end %>

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

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

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

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

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

guest

回答1

0

自己解決

usersのshowがcurrent_userになっていたのが原因だった。@userに直した行けた。

showの直したコード

<body class="csstemplate"> <div class="container"> <div class="row"> <div class="col-md-5 toppad pull-right col-md-offset-3 ">
</div> <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 toppad" > <div class="panel panel-info"> <div class="panel-heading"> <h3 class="panel-title">プロフィール</h3> </div> <div class="panel-body"> <div class="row"> <div class="col-md-3 col-lg-3 " align="center" class="img-thumbnail"> <% if @user.userface? %> <%= image_tag @user.userface %> <% else %> <%= image_tag("userfacenoimage.png", :size => "90x90") %> <% end %> </div> <div class=" col-md-9 col-lg-9 "> <table class="table table-striped"> <tbody> <tr> <td>名前</td> <td><%= @user.username %></td> </tr> <tr> <td>現在の仕事</td> <td><%= @user.work %></td> </tr> <tr> <td>普段の生活</td> <td><div class="form-group"><%= @user.life %></div></td> </tr> <tr> <td>好きな本</td> <td><%= @user.likebook %></td> </tr> <tr> <td>好きな本の理由</td> <td><div class="form-group"><%= @user.likebookwhy %></div></td> </tr> <tr> <td>読書生活</td> <td><div class="form-group"><%= @user.booklife %></td> </tr> </tr> </tbody> </table> </div> </div> </div> </div> </div> </div> </div>
</body>

indexのコード
<% @users.each do |user| %>

<div class="col-xs-3 col-md-2">

<% if user.userface? %>
<%= image_tag user.userface %>
<% else %>
<%= image_tag("userfacenoimage.png", :size => '90x90') %>

<% end %><br> <div class="text-primary"> <%= link_to user.username, user %> </div>
</div> <% end %>

userのコントロール

class UsersController < ApplicationController
before_action :authenticate_user!
def index
@users = User.all
end

def show
@user = User.find(params[:id])

end
end

投稿2017/04/15 08:23

編集2017/04/15 08:26
hayabusakk

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問