Ruby on rails Rails按日期查找注释

Ruby on rails Rails按日期查找注释,ruby-on-rails,date,Ruby On Rails,Date,我创建了一个简单的rails应用程序,它有一个people和一个notes模型 人有很多笔记,笔记属于人 该应用程序可以正常工作,我可以显示特定人的所有备忘,但我希望能够显示特定日期的单个备忘 默认场景为今天的日期 我目前有以下情况: <% @person.notes.each do |note| %> <p> <h3><%=h note.title %></h3> </p> <p><

我创建了一个简单的rails应用程序,它有一个people和一个notes模型

人有很多笔记,笔记属于人

该应用程序可以正常工作,我可以显示特定人的所有备忘,但我希望能够显示特定日期的单个备忘

默认场景为今天的日期

我目前有以下情况:

<% @person.notes.each do |note| %>
  <p>
    <h3><%=h note.title %></h3>
  </p>

  <p><b>Body: </b><br />
    <%=h note.body %>
谁能给我指一下正确的方向吗

谢谢

汤姆

# 我使用了下面的代码,并想出了这个

我的show视图是这样的

<p>
  <h1><%=h @person.name %></h1>
</p>

<h2>Notes</h2>

<% @person.notes.all(:conditions=> ["created_at >= ? ", Time.now.beginning_of_day]) do |note| %>
  <p>
    <h3><%=h note.title %></h3>
  </p>

  <p><b>Body: </b><br />
    <%=h note.body %>
  </p>

<% end %>

笔记 [“创建时间>=?”,Time.now.开始日期])do | note |%>

正文:

我想我可能在视图中使用了错误的语法,或者甚至不应该在视图中使用它


要获取任何给定日期的所有记录,请执行以下操作:

@person.notes.all( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day] )
@person.notes.first( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day], :order => :created_at )
要在任何给定日期获取第一条记录,请执行以下操作:

@person.notes.all( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day] )
@person.notes.first( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day], :order => :created_at )

要获取今天的所有记录(假设创建时间始终小于当前时间):

要获取今天的第一条记录(假设创建时间始终小于当前时间):


要获取任何给定日期的所有记录,请执行以下操作:

@person.notes.all( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day] )
@person.notes.first( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day], :order => :created_at )
要在任何给定日期获取第一条记录,请执行以下操作:

@person.notes.all( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day] )
@person.notes.first( :conditions=> ["created_at BETWEEN ? AND ? ", 
    date.beginning_of_day, date.end_of_day], :order => :created_at )

要获取今天的所有记录(假设创建时间始终小于当前时间):

要获取今天的第一条记录(假设创建时间始终小于当前时间):


根据更新的问题,您需要迭代查询返回的项目

<% @person.notes.all(:conditions=> ["created_at >= ? ", Time.now.beginning_of_day]).each do |note| %>
上面的内容没有经过测试,因为我不记得确切的语法,但是你需要使用lambda,否则当你的rails应用程序第一次启动时,它会在其中插入今天的日期,并且在对指定的_作用域发出后续请求时不会被更新。有关上述情况的更多信息,请参阅


在您的
PeopleController
中,您可以将它们作为
@todays\u notes=@person.notes.today
获取,然后在视图中使用
@todays\u notes.each do | note |
根据更新的问题,您需要迭代查询返回的项目

<% @person.notes.all(:conditions=> ["created_at >= ? ", Time.now.beginning_of_day]).each do |note| %>
上面的内容没有经过测试,因为我不记得确切的语法,但是你需要使用lambda,否则当你的rails应用程序第一次启动时,它会在其中插入今天的日期,并且在对指定的_作用域发出后续请求时不会被更新。有关上述情况的更多信息,请参阅


在您的
PeopleController
中,您可以将它们作为
@todays\u notes=@person.notes.today
获取,然后使用
@todays\u notes.each do | note |

在视图中对它们进行迭代,谢谢您的回复。您的语法工作得很好,并生成了正确的sql语句(我通过mysql进行了检查),但出于某种原因,我的应用程序拒绝显示注释。我的表演观点是这样的我在原始帖子中添加了代码###我认为我做错了什么事……你检查过确保你有此人的数据吗?请尝试在
script\console
中运行该命令,查看是否有数据。谢谢您的回复。您的语法工作得很好,并生成了正确的sql语句(我通过mysql进行了检查),但出于某种原因,我的应用程序拒绝显示注释。我的表演观点是这样的我在原始帖子中添加了代码###我认为我做错了什么事……你检查过确保你有此人的数据吗?尝试在
script\console
中运行命令,查看是否有数据。