0

I'm trying to create an index.html.erb file that will list records from a table called events. I'm trying to select records for a particular day. starts_at is a datetime field in the table. For example, I'm trying to get all of the records for Monday of this week using:

<% @events = Event.where('starts_at.to_date = ?', DateTime.now.beginning_of_week.to_date) each do |event| %>

But, I don't get records when I should.

One thing it doesn't like is the each statement.

Thanks in advance for the help!

4

3 に答える 3

0
Event.find(:all, :conditions => ["DATE(starts_at) = DATE(?)", DateTime.now.beginning_of_week])

また

Event.where("DATE(starts_at) = DATE(?)", DateTime.now.beginning_of_week)
于 2012-12-12T17:58:22.360 に答える
0

等号条件記号が欠落していると思います。

<% @events = Event.where('starts_at.to_date = ?', DateTime.now.beginning_of_week.to_date) each do |event| %>
于 2012-12-12T16:55:59.830 に答える
0

ARELを使用できます。

@date = DateTime.now.beginning_of_week
@events = Event.where(starts_at: @date..@date.end_of_day)

そして、それはあなたのコントローラーに入るはずです。ビューで DB クエリを実行することはお勧めしません (あまり MVC ではありません!)。

于 2012-12-12T17:10:40.950 に答える