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'谢谢这接近于我想要的代码,这对我来说很容易理解和操作。谢谢这接近于我想要的代码,这对我来说很容易理解和操作。