2017-07-31 7 views
0

私はソーシャルメディアのWebサイトを作って、ユーザーがイベントに参加し、互いに競争しています。現在のユーザー情報がすべてのプロファイルに表示されています。Ruby on Rails

ユーザーがイベントに参加するたびに、自分のプロフィールにステータスが表示されます。問題は、他のユーザープロファイルを見ると、ステータスが現在のユーザーであるユーザーと一致することです。

誰かが、各ユーザーのステータスが偉大であることを示すコードを書くのを手伝ってくれたら助かります。私は質問が少し曖昧に聞こえるかもしれないことを知っている。

私は現在のユーザーではなく、どのプロフィールに基づいて投稿のみを表示するかを知る必要があります。ありがとう!

<div class="center"> 
    <div class="col-xs-6"> 
    <div class="panel panel-default"> 
     <div class="panel-body"> 
     <% if [email protected]_events.present? %> 
      <h4>Hi <%= User.find_by_username(params[:id]).username %>, thanks for joining!</h4> 
      <h4>Join events, complete them, and compete</h4> 
     <% end %> 

     <% @user_events.each do |ue|%> 
      <% if ue.event.present? %> 
      <h4 class="blue"> 
       <%= User.find_by_username(params[:id]).username %> 
      </h4> 
      <% userevent = User.find_by(params[:event]) %> 
      <p>I'm going to <%= link_to ue.event.title %>.</p> 
      <% if ue.hours.present? %> 
       <h5> Completed Hours: <%= ue.hours %> </h5> 
      <% end %> 
      <% if ue.hours.present? %> 
       <img src="#" style="width: 10%;" alt=""> 
      <% end %> 
      <% end %> 
     <% end %> 
     </div> 
    </div> 
    </div> 
</div> 
+0

コントローラを追加できますか? –

答えて

0

まず、ビュー内でデータベースにクエリを行うのは非常に難しいです。 <%= User.find_by_username(params[:id]).username %>の式をコントローラに移動し、インスタンス変数を使用してユーザー名を表示してください。

コントローラコードも入力するとよいでしょう。私はあなたがparams [:id]で見つけたユーザに応じてユーザイベントを選ぶべきだと思います。

0

コントローラーがなければ、手助けするのは少し難しいです。しかし、私はparams[user_id]はあなたがイベントを取得したいHTEユーザーのIDです

def get_status_by_user 
    user_id = params[:user_id] 
    user = User.find_by(id: user_id) 
    user.event 
end 

のように、ユーザコントローラ上で何かをしようとお勧めします。

はまた、私が見ることができること方法が最後の

は、指定された条件に一致する最初のレコードを検索し返しますので、あなたはユーザーを指定しない<% userevent = User.find_by(params[:event]) %>です。

Find_by docuemntaion

あなたはそれがほとんどのようにあなたのコードを維持したいのであれば、あなたは最初のイベントを取得したいユーザーを検索し、また、その特定のユーザー

のステータスを取得する必要がありますDBスキーマに関する少しの情報を教えてください

関連する問題