我正在构建一个问题/答案应用程序。问题是静态的并且是提供的,而不是用户生成的。正在通过嵌套关系访问数据。
在单个用户视图中,我想显示用户已回答的问题列表及其相关答案。像这样:
问题1 用户1回答
此时,我正在显示每个问题,但所有答案都显示出来,而不仅仅是特定用户的答案。像这样:
问题1 用户1回答 用户2回答
以下是我的show.view中的代码。我也尝试过没有"如果是answer.user"并获得相同的结果。
<% @user.questions.uniq.each do |question| %>
<h3><div class="answer"><%= question.question %> </div></h3>
<% question.answers.each do |answer| %>
<% if answer.user = current_user %>
<div class="answer"><%= answer.answer %> <%= answer.created_at.strftime("(%Y)") %></div>
<% end %>
<% end %>
<% end %>
我的模特:
class Answer < ActiveRecord::Base
belongs_to :question
belongs_to :user
end
class Question < ActiveRecord::Base
has_many :answers
has_many :users, through: :answers
end
class User < ActiveRecord::Base
has_many :answers
has_many :questions, through: :answers
end
我的路线:
resources :users do
resources :answers
end
我很乐意提供其他有用的代码。谢谢!
答案 0 :(得分:1)
您将current_user分配给answer.user,您希望使用此行更改测试相等性
if answer.user == current_user
答案 1 :(得分:1)
实际上我更喜欢在不同的水平上对待它,我相信这也应该有用
<% @user.questions.uniq.each do |question| %>
<h3><div class="answer"><%= question.question %> </div></h3>
<% question.answers.where(user: @user).each do |answer| %>
<div class="answer"><%= answer.answer %> <%= answer.created_at.strftime("(%Y)") %></div>
<% end %>
<% end %>