Ruby on rails Rails按日期查找注释
我创建了一个简单的rails应用程序,它有一个people和一个notes模型 人有很多笔记,笔记属于人 该应用程序可以正常工作,我可以显示特定人的所有备忘,但我希望能够显示特定日期的单个备忘 默认场景为今天的日期 我目前有以下情况: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><
<% @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
中运行命令,查看是否有数据。