에 댓글을 달았습니다. 모든 게시물의 모든 댓글에 액세스합니다. another question I asked recently과 관련된 분류입니다. 하지만 그 질문의 답을 구현하기 전에 좀 더 간단한 방법으로 시도하고 싶었습니다.current_user가 (가)
나는 사용자가 운동을 추적 할 수있는 레일 응용 프로그램에 루비를 만들었습니다. 운동은 또한 댓글을 달 수있는 능력이 있습니다. current_user
대시 보드보기에서 나는 current_user가 주석을 달았습니다 모든 의견을 물고기 밖으로하려고합니다. 예를 들면 다음과 같습니다.
사용자 A는 운동을하고 사용자 B는 의견을 작성합니다. 사용자 A의 운동에 대한 사용자 C의 의견. 사용자 B가 대시 보드보기에서 사용자 C의 주석을 보도록합니다.
댓글을 반복하고 사용자가 댓글을 단 운동의 모든 댓글을 가져 오는 가장 효율적인 방법은 무엇입니까? 나는 이것에 대한 named_scopes 실험 한
<% current_user.comments.workouts.comments.each do |comment| %>
하지만 그것을 알아낼 수없는 것 : 나는이 말을하고 싶지만 분명이 작동하지 않을 것입니다. 협회는 당신이 기대하는대로 있습니다.
<% workouts = []
current_user.comments.each do |comment|
unless workouts.include? comment.workout.id # prevents duplicates
workouts << comment.workout.id
comment.workout.comments.each do |comment|
# now comment refers to all comments for that workout
puts "#{comment.user.name} says #{comment.text}"
end
end
end %>
같은
이User has_many :workouts
User has_many :comments
Workout belongs_to :user
Workout has_many :comments
Comment belongs_to :user
Comment belongs_to :workout
좋아,이 작품을하지만 실제로 의견의 단일 스트림 싶어요. 예를 들어, put은'UserA가 workouttitle에 댓글을 달았습니다 .' 코드를 수정하여 코드를 조정할 수 있습니까? – bgadoci
아,': order => "created_at DESC"' – bgadoci
확실히 편집하십시오. –