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