我正在创建一个小课程应用程序,每天都有不同的课程。我只想在索引上显示当前的课程,而且无法弄清楚如何。我用Google搜索并发现了一些接近的信息,但仍无法解决问题。我只有一个控制器,DaysController。没有用户控制器。
对于我的模特(day.rb),我已尝试过这个
class Day < ActiveRecord::Base
validates :description, :date, :link_to, :presence => true
scope :created_on, lambda {|date| {:conditions => ['created_at >= ? AND created_at <= ?', date.beginning_of_day, date.end_of_day]}}
def self.today
self.created_on(Date.today)
end
end
对于我的索引,我已尝试过这些
<% @day.created_on(Date.today) %>
<% @day.today %>
任何建议??
答案 0 :(得分:1)
我会将scope
更改为仅使用Date
对象,并假设您希望条件使用较新的语法:
scope :created_on, ->(date) { where(created_at: date) }
然后Day.today
方法应该没有任何变化。
答案 1 :(得分:1)
您可以执行以下操作:
class Day < ActiveRecord::Base
scope :today, lambda { where('CAST(created_at AS date) = ?', Date.today) }
并像这样使用它:
@days = Day.today
# returns a list of `Day` records where the `created_at`'s date is equal to today's date
答案 2 :(得分:1)
如果我理解正确并且为了简单起见,这基本上就是你想要实现的目标吗?
控制器:
def index
@days = Day.all
end
查看(index.html.erb):
<% @days.each do |day| %>
<% if day.created_at == Date.today %>
<%= day.field_name %>
<% end %>