私が抱えていた問題にもかかわらず、簡単に答えられるはずの簡単な質問:
送受信されたメッセージ(「イントロ」)を表示するメッセージ(「イントロ」)タブを備えたシンプルなRailsアプリがあります。メッセージがユーザーからユーザーに適切にルーティングされており、メッセージの内容がユーザーの受信ボックスに正常に表示されています。ただし、メッセージ自体の横にメッセージに関連付けられているユーザーの名前を表示するのに問題があります
私はユーザーモデルを持っています:
class User < ActiveRecord::Base
attr_accessible :name, :email, :one_liner, :password, :password_confirmation
has_secure_password
has_many :sent_intros, foreign_key: "sender_id", dependent: :destroy, class_name: "Intro"
has_many :received_intros, foreign_key: "receiver_id", dependent: :destroy, class_name: "Intro"
has_many :receivers, through: :sent_intros, source: :receiver
has_many :senders, through: :received_intros, source: :sender
...
、イントロ(メッセージ)モデル:
class Intro < ActiveRecord::Base
attr_accessible :content, :receiver_id, :sender_id
belongs_to :sender, class_name: "User"
belongs_to :receiver, class_name: "User"
...
ユーザーコントローラーからの関連コードは次のとおりです。
class UsersController < ApplicationController
before_filter :signed_in_user, only: [:index, :edit, :update, :destroy]
before_filter :correct_user, only: [:edit, :update]
before_filter :admin_user, only: :destroy
def show
@user = User.find(params[:id])
@intro = Intro.find(params[:id])
@sent_intros = current_user.sent_intros.paginate(page: params[:page])
@received_intros = current_user.received_intros.paginate(page: params[:page])
end
...
私の.erbショーページ:
<% provide(:title, @user.name) %>
<div class="row">
<aside class="span4">
<section>
<h1>
<%= @user.name %>
</h1>
</section>
</aside>
<div class="span8">
<% if@user.received_intros.any? %>
<h3>Received intros (<%= @user.received_intros.count %>)</h3>
<ol class="intros">
<%= render @received_intros %>
</ol>
<%= will_paginate @received_intros %>
<% end %>
<% if@user.sent_intros.any? %>
<h3>Sent intros (<%= @user.sent_intros.count %>)</h3>
<ol class="intros">
<%= render @sent_intros %>
</ol>
<%= will_paginate @sent_intros %>
<% end %>
</div>
</div>
したがって、このページの<%= render @received_intros%>と<%= render @sent_intros%>の行に関心があります
現在、次のように表示されます(関連付けられたユーザーのないイントロコンテンツ)。
それらのユーザー名のプレフィックスをそれぞれのイントロに付けるにはどうすればよいですか?ありがとう!