我正在使用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来显示所有问题的列表,并在我的视图中循环使用问题。但现在我只需要一个。
更新:错误是由于我将月/日信息存储为字符串而引起的。我把它们做成整数并重新运行我的种子,它现在完美无缺。
答案 0 :(得分:3)
如果您只对没有年份的日/月感兴趣,那么最简单的方法可能是将show_date
列替换为show_month
和show_day
列并存储月份/这些列中的日期组件
您的查询将是
Content.find_by(show_month: Time.now.month, show_day: Time.now.day)