2015-09-10 148 views
4

我正在創建一個小課程應用,每天有不同的課程。我只想在索引中顯示當前的日子課程,但不知道如何。我搜索了一下,發現一些信息很接近,但仍然無法解決問題。我只有一個控制器,DaysController。沒有用戶控制器。Ruby on Rails - 僅顯示當前日期

對於我的模型(day.rb)我已經試過這

class Day < ActiveRecord::Base 
    validates :description, :date, :link_to, :presence => true 
    scope :created_on, lambda {|date| {:conditions => ['created_at >= ? AND created_at <= ?', date.beginning_of_day, date.end_of_day]}} 


    def self.today 
    self.created_on(Date.today) 
    end 

end 

而對於我的索引我已經試過這些

<% @day.created_on(Date.today) %> 

    <% @day.today %> 

任何意見?

+0

告訴我們錯誤信息,或者你看到不正確的行爲。 – Daiku

回答

1

如果我理解正確並且爲簡化起見是這基本上是你要實現的目標是什麼?

控制器:

def index 
@days = Day.all 
end 

視圖(index.html.erb):

<% @days.each do |day| %> 
<% if day.created_at == Date.today %> 
<%= day.field_name %> 
<% end %> 
+0

所以我只是試了一下,錯誤消失了,但它仍然沒有顯示當前的課程 –

+0

白天是整個課程,所以你需要做:<%= day.field%>並用必要的字段替換字段想要看到 – sump

+1

@TuckerMayo如果我的答案是您使用的解決方案。你介意把它作爲正確的答案嗎?謝謝。 – sump

1

我會改變scope只使用Date對象,我認爲你要你的病情而使用新的語法:

scope :created_on, ->(date) { where(created_at: date) } 

然後Day.today方法應該沒有任何變化工作。

1

你可以做到以下幾點:

class Day < ActiveRecord::Base 
    scope :today, lambda { where('CAST(created_at AS date) = ?', Date.today) } 

而且使用這樣的:

@days = Day.today 
# returns a list of `Day` records where the `created_at`'s date is equal to today's date