所以我正在创建一个社交媒体网站,用户可以在其中加入活动并互相竞争。
每次用户加入活动时,其个人资料中都会显示一个状态。问题在于,当我查看其他用户配置文件时,状态只匹配当前用户的身份。
如果有人可以帮我写一些代码,这些代码会显示每个用户的不同状态。我知道这个问题可能听起来有些模糊。
我只需要知道一种方法,只根据我正在查看的配置文件而不是当前用户查看帖子。谢谢!
<div class="center">
<div class="col-xs-6">
<div class="panel panel-default">
<div class="panel-body">
<% if !@user_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)
首先,对视图内的数据库进行查询非常糟糕。请将 print Response(obj_serialized.data)
return Response(obj_serialized.data)
内的表达式移动到您的控制器,然后使用实例变量来显示用户名。
如果您提供控制器代码也会很棒。我想你应该根据params [:id]找到的用户选择用户事件。
答案 1 :(得分:0)
没有控制器,它有点难以帮助。但我建议在用户控制器上尝试一些东西,比如
def get_status_by_user
user_id = params[:user_id]
user = User.find_by(id: user_id)
user.event
end
其中params[user_id]
是您希望获得该事件的用户的ID。
另外我可以看到<% userevent = User.find_by(params[:event]) %>
您没有指定用户,因此该方法将返回最后一个
查找符合指定条件的第一条记录。
因此,如果您希望保持代码大部分时间,您需要首先找到要获取事件的用户,然后获取该特定用户的状态
还提供有关数据库架构的一些信息可以提供帮助