Ruby on rails Rails 4:渲染今天的事件
我不知道该怎么做。我目前正在使用:Ruby on rails Rails 4:渲染今天的事件,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我不知道该怎么做。我目前正在使用: <% @events.each do |event| %> <li><%= link_to event.group.name, event %> <%= event.start_time %> <% end %> 但是,此代码对my home.html.erb视图页面没有影响。它仍然显示所有事件,而不是今天的。 再次感谢 您应该在视图中呈现事件,但应该
<% @events.each do |event| %>
<li><%= link_to event.group.name, event %>
<%= event.start_time %>
<% end %>
但是,此代码对my home.html.erb视图页面没有影响。它仍然显示所有事件,而不是今天的。
再次感谢 您应该在视图中呈现事件,但应该在控制器中过滤它们。所以你的问题实际上是关于控制器代码的问题。您应该做的是在事件上调用作用域。像这样:
@events = Event.where('start_time > ?', Time.now.beginning_of_day)
您应该在视图中呈现事件,但应该在控制器中过滤它们。所以你的问题实际上是关于控制器代码的问题。您应该做的是在事件上调用作用域。像这样:
@events = Event.where('start_time > ?', Time.now.beginning_of_day)
在控制器中,您可以编写
@events = Event.where('DATE(created_at)= ?', Date.today)
在控制器中,您可以编写
@events = Event.where('DATE(created_at)= ?', Date.today)
您可以在事件模型中添加作用域,以获取今天的所有事件:
scope :todays_event, where('start_time=?', Time.now.beginning_of_day)
<% @events.todays_event.each do |event| %>
<li><%= link_to event.group.name, event %>
<%= event.start_time %>
<% end %>
您可以在事件模型中添加作用域,以获取今天的所有事件:
scope :todays_event, where('start_time=?', Time.now.beginning_of_day)
<% @events.todays_event.each do |event| %>
<li><%= link_to event.group.name, event %>
<%= event.start_time %>
<% end %>
如果希望所有事件的开始时间与今天相同,可以使用:
@events = Event.where('start_time >= ?', Time.now.beginning_of_day)
@events = Event.where(:created_at => Date.today)
或者,如果您想要今天创建的所有事件,您可以使用:
@events = Event.where('start_time >= ?', Time.now.beginning_of_day)
@events = Event.where(:created_at => Date.today)
如果希望所有事件的开始时间与今天相同,可以使用:
@events = Event.where('start_time >= ?', Time.now.beginning_of_day)
@events = Event.where(:created_at => Date.today)
或者,如果您想要今天创建的所有事件,您可以使用:
@events = Event.where('start_time >= ?', Time.now.beginning_of_day)
@events = Event.where(:created_at => Date.today)
您真的需要上述答案的组合: 在事件模型中创建范围。您的范围可能希望在一天结束之前检查它是否存在
scope :todays_events, where('start_time >=? AND start_time <= ?', Time.now.beginning_of_day, Time.now.end_of_day)
您真的需要上述答案的组合: 在事件模型中创建范围。您的范围可能希望在一天结束之前检查它是否存在
scope :todays_events, where('start_time >=? AND start_time <= ?', Time.now.beginning_of_day, Time.now.end_of_day)
您还可以执行以下操作:
current_time = Time.now
@events = Event.where(start_time: current_time.beginning_of_day..current_time.end_of_day)
从今天的乞讨到结束时间,它将记录所有事件
可能在事件模型类中创建一个作用域,如下所示:
scope :happening_on, ->(date_time) { where(start_time: date_time.beginning_of_day..date_time.end_of_day) }
这使您能够检查任何给定日期发生的事件:
@events = Event.happening_on(Time.now) # todays events
@events = Event.happening_on(1.day.ago) # yesterdays events
@events = Event.happening_on(1.day.from_now) # tomorrows events
您还可以执行以下操作:
current_time = Time.now
@events = Event.where(start_time: current_time.beginning_of_day..current_time.end_of_day)
从今天的乞讨到结束时间,它将记录所有事件
可能在事件模型类中创建一个作用域,如下所示:
scope :happening_on, ->(date_time) { where(start_time: date_time.beginning_of_day..date_time.end_of_day) }
这使您能够检查任何给定日期发生的事件:
@events = Event.happening_on(Time.now) # todays events
@events = Event.happening_on(1.day.ago) # yesterdays events
@events = Event.happening_on(1.day.from_now) # tomorrows events
在尝试此操作时,我遇到了一个语法错误:SQLite3::SQLException:near:语法错误:选择事件。*从日期为%Y-%m-%d='2015-05-28'的事件中仍然有语法错误:SQLite3::SQLException:没有这样的函数:日期格式:选择事件。*从日期为\u格式的事件中,%Y-%m-%d='2015-05-28'我尝试此操作时出现语法错误:SQLite3::SQLException:near:语法错误:选择事件。*从创建日期为的事件中,%Y-%m-%d='2015-05-28'仍然有语法错误:SQLite3::SQLException:没有此类函数:日期为的格式:选择事件。*从创建日期为的事件中,%Y-%m-%d='2015-05-28'谢谢这接近于我想要的代码,这对我来说很容易理解和操作。谢谢这接近于我想要的代码,这对我来说很容易理解和操作。