【发布时间】:2016-08-01 23:42:47
【问题描述】:
我是一名初学者,正在尝试与我的 rails 应用中的注册有关的一些方面。用户有很多注册;招生属于一堂课;注册有很多 word_expositions 和 scrambled_words。
我在课程控制器中编写了一个辅助方法来生成已注册用户的列表,以显示在每个课程显示页面中:
helper_method :enrolled_users
def enrolled_users
lesson = Lesson.find(params[:id])
enrollments = lesson.enrollments
enrolled_users = enrollments.map { |enrollment| enrollment.user }
end
我现在正在尝试实现一个 completed_expos 帮助程序,以便我可以在每个用户旁边指示他们是否已完成我的应用程序的展示组件。我所拥有的是:
helper_method :completed_expos
def completed_expos
lesson = Lesson.find(params[:id])
completed_expos = enrolled_users.map do |user|
current_enrollment = lesson.enrollment_for(user)
all_expos = current_enrollment.word_expositions
all_expos.all? { |expos| expos.completed == true }
end
end
我想在每个列出的用户旁边添加一条通知,说明他们是否完成了展览。所以我尝试的是:
<% enrolled_users.each do |user| %>
<ul>
<li><%= user.username %></li>
<% if completed_expos.include?(user) %>
completed
<% end %>
</ul>
<% end %>
但效果是,虽然列出了已注册的用户,但在应该列出它的那些地方没有关于博览会完成的迹象。我该如何选择这个用户子组?
【问题讨论】:
标签: ruby-on-rails controller helper