You could have a few options. The possiblities are (as usual) endless with Ruby.
This is something I whipped up really quickly. I dont love it, but I think it works.
app/models/cafe.rb
scope :open_cafes, -> {
today = Date.today.strftime("%A").downcase
joins(:openings).where("day = ? AND status = 'open'", today)