0
我是Rails开发的新手,遇到了连接和合并的问题。Rails:加入where where子句
我有两个模型:教师和会话。我希望显示所有将来有会议的导师(即不显示不计划任教的导师)以及这些会议的列表。下面是我有什么,但它并不完全正确(这表明在未来多次超过1次会议讲师):
class Session < ActiveRecord::Base
belongs_to :instructor
def self.is_current
where(start_time: Time.now.beginning_of_day..(Time.now.beginning_of_day + 1.year))
end
end
class Instructor < ActiveRecord::Base
has_many :sessions
def self.with_current_sessions
joins(:sessions).merge(Session.is_current)
end
end
class InstructorsController < ApplicationController
def index
@instructors = Instructor.with_current_sessions
end
end
然后教官索引视图:
<% @instructors.each do |inst| %>
<h3><%= inst.full_name %></h3>
<% if inst.sessions.size > 0 %><p>Teaching <%= pluralize(inst.sessions.size, 'workshop') %>:</p>
<ul class="standard">
<% inst.sessions.each do |sess| %>
<li><%= link_to sess.name, sess %></li>
<% end %>
</ul>
<% end %>
<% end %>
那么有什么不完全工作?另外我认为Session不是一个模型的好名字,因为它可以与很多Rails和其他关键字相关联。 – PericlesTheo 2014-08-29 15:53:38
具有多个会话的教师不止一次显示。所有的会议都会出现在列表中,而不仅仅是未来的会议。 – ergdegdeg 2014-08-29 16:17:51