30715


### 前提・実現したいこと

indexページ(ホーム)でログインしているユーザーのidを取得したいです。  
id取得後、ログインしているユーザーが登録した画像アイコンを取り出します。

### 発生している問題・エラーメッセージ

【page_controller.rb】

[code]

    def index
      @user = User.find_by(params[:id])
    end
    
[/code]

【application.html.erb】

[code]

       ・
       ・
    <body>
      <div class="col-md-12">
       <%= render 'layouts/header' %>
      </div> 
       ・
       ・
    
[/code]

【_header.html.erb】

[code]

      ・
      ・
     <li>
      <%= link_to current_user do %>
       <%= render 'layouts/header_image' %>
       <%= current_user.username %>
      <% end %>
     </li>
      ・
      ・
    
[/code]

【_header_image.html.erb】

[code]

      ・
      ・
     <% if !@user.image.url.nil? %>
      <%= image_tag(@user.image.url, :alt => "アイコン", :width => '40', :height => '30', class: "header-icon") %>
     <% else %>
      <%= image_tag("no-image.png", :alt => "アイコン", :width => '40', :height => '30', class: "header-icon") %>
     <% end %>
      ・
      ・
    
[/code]

ここで、取り出してほしい画像はUser.idが3のユーザーの画像です。  
しかし、実際に取り出されるのはUser.idが1のユーザーになってしまいます…

### 補足情報

①User.idは1も3も存在しており、どちらも画像をpublicから取り出しています。  
②Carrierwaveを使っています。  
③User#showでも同様に画像を取り出していますが、こちらは意図した画像を取り出してくれます。

【 **User#show** 】

[code]

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

**index#page** では  
*@user = User.find(params[:id])*でデータを取り出せないので、  
**@user = User.find_by(params[:id])**を使っています。

何卒よろしくお願いします。

マルチポスト  
[テラテイル](https://teratail.com/questions/56722?modal=q-comp)


CC BY-SA 3.0
2016-11-27T06:06:17.403
30714
2016-11-27T06:40:42.983
2020-06-17T08:14:45.997
-1
19459
question
ruby-on-rails
意図しないuserのidを取得しています…


  * 「ログインしているユーザー」の id はどうやって取得しているのですか?
  * 検索に使っている `params[:id]` にはちゃんと値が入っていますか? もしかして `nil` や `""` (空文字列) ではありませんか?
  * `#index` へのアクセスの時のURL(`?` の後ろがあるならそれも含めて)はどういったものですか?


CC BY-SA 3.0
2016-11-27T06:40:42.983
30715
2016-11-27T06:40:42.983
17037
30714
answer