2017-05-03 5 views
0

私はdeviseを使用して、私のモデルの名前をUserに設定しています。レールの別のモデルクラスに属するフィールドを参照する

<div class="container-fluid"> 
<% @posts.each do |post| %> 
<div class="row"> 
<div class="jumbotron"> 
     <div class="page-header"> 
     <h1><%= post.title %> <small>by: 
     <%= post.user_id %></small></h1> 
     </div> 
    </div> 
</div> 
:ユーザーが次のコードでポストを作る時はいつでも、私はすべてのユーザーのID番号を見ることができますポスト部分ビューのインデックスページ上

rails g model Post title body:text user:references 

:私はポストのモデルを作成したとき、私は次のように入力し

私のポストのコントローラクラス内の変数@postsは次のとおりです。

@posts = Post.all 

基本的に何I'amがやろうとすると、ユーザーの電子メールを取得することです。ビューで

@posts = Post.includes(:user).all 

<%= post.user.email %> 

答えて

1

お使いのコントローラで:

post.user.email 

推奨: 使用

1

あなただけの関連するモデルを得るためにあなたのモデルを通じて到達することができます一度にすべてのレコードをフェッチすることは、長期的に実現可能でスケーラブルではない。

+0

これはN + 1になります。 –

+0

'@posts = Post.preload(:user).all' – Ruslan

関連する問題