在Rails 4中如何根据今天的日期显示数据库中的信息?

时间:2014-08-30 20:59:50

标签: ruby-on-rails ruby postgresql

我正在使用Rails 4和postgresql构建应用程序,并且在主页的顶部我想显示数据库中根据日期更改的特定内容。我的数据库设置如下:

id|question                          |show_month|show_day
01|"question to display on January 1"|01        |01
02|"question to display on January 2"|01        |02
03|"question to display on January 3"|01        |03

等等。

根据Frederick的建议,我的代码现在看起来像这样:

On my questions_controller:

def index
  @daily = Question.find_by(show_month: Time.now.month, show_day: Time.now.day)
end

On my View:

<%= @daily.question %>

当我尝试加载视图时出现以下错误。它正在调用上面我所看到的错误。

"NoMethodError in Questions#index" undefined method `question' for nil:NilClass
很明显,我没有正确地在我的观点上称呼它。关于它应该是什么的任何建议,以便它显示&#34;问题&#34;我的数据库中的字符串?

我能够通过在我的控制器中使用@questions = Question.all来显示所有问题的列表,并在我的视图中循环使用问题。但现在我只需要一个。

更新:错误是由于我将月/日信息存储为字符串而引起的。我把它们做成整数并重新运行我的种子,它现在完美无缺。

1 个答案:

答案 0 :(得分:3)

如果您只对没有年份的日/月感兴趣,那么最简单的方法可能是将show_date列替换为show_monthshow_day列并存储月份/这些列中的日期组件

您的查询将是

 Content.find_by(show_month: Time.now.month, show_day: Time.now.day)