从 rails 中的循环获取唯一值
Getting unique values from loop in rails
我知道了,所以我有一个临床医生正在与之交谈的独特患者的列表。我可以调出有关患者的详细信息,但无法调出与相关评论有关的任何内容。
app\views\comments\index.html.erb
<% @comments.map(&:patient).uniq.each_with_index do |comment, index| %>
<div class="profile-post color-one">
<span class="profile-post-numb"><%= index+1 %></span>
<div class="profile-post-in">
<h3 class="heading-xs"><a><%= link_to "#{comment.first_name} #{comment.last_name}", comment_path(comment) %></a></h3>
<p><%= comment.diagnosis %><i class="pull-right"><%= link_to "Edit", edit_comment_path(comment) %> <%= link_to "Delete", comment_path(comment), method: :delete, data: {confirm: 'Are you sure you want to delete'} %></i></p>
</div>
</div>
<% end %>
link_to 也损坏了,因为它们应该指向评论页面但传递的是 patient.id 而不是 comment.id。
comments_conrtoller.rb
def index
@comments = current_clinician.comments
end
comment.rb
class Comment < ActiveRecord::Base
belongs_to :clinician
belongs_to :patient
end
@comments.map(&:patient)
给出属于 class Patient
的对象,这就是链接传递 patient_id
而不是 comment_id
.[=19 的原因=]
你应该在这里使用 group
而不是 map
。
类似 @comments.group(:patient)..
的内容;必须更改循环语法才能使用此范围的输出。
有关 group
工作原理的更多详细信息,请参阅 http://apidock.com/rails/v4.0.2/ActiveRecord/QueryMethods/group。
我知道了,所以我有一个临床医生正在与之交谈的独特患者的列表。我可以调出有关患者的详细信息,但无法调出与相关评论有关的任何内容。
app\views\comments\index.html.erb
<% @comments.map(&:patient).uniq.each_with_index do |comment, index| %>
<div class="profile-post color-one">
<span class="profile-post-numb"><%= index+1 %></span>
<div class="profile-post-in">
<h3 class="heading-xs"><a><%= link_to "#{comment.first_name} #{comment.last_name}", comment_path(comment) %></a></h3>
<p><%= comment.diagnosis %><i class="pull-right"><%= link_to "Edit", edit_comment_path(comment) %> <%= link_to "Delete", comment_path(comment), method: :delete, data: {confirm: 'Are you sure you want to delete'} %></i></p>
</div>
</div>
<% end %>
link_to 也损坏了,因为它们应该指向评论页面但传递的是 patient.id 而不是 comment.id。
comments_conrtoller.rb
def index
@comments = current_clinician.comments
end
comment.rb
class Comment < ActiveRecord::Base
belongs_to :clinician
belongs_to :patient
end
@comments.map(&:patient)
给出属于 class Patient
的对象,这就是链接传递 patient_id
而不是 comment_id
.[=19 的原因=]
你应该在这里使用 group
而不是 map
。
类似 @comments.group(:patient)..
的内容;必须更改循环语法才能使用此范围的输出。
有关 group
工作原理的更多详细信息,请参阅 http://apidock.com/rails/v4.0.2/ActiveRecord/QueryMethods/group。