我目前正在建立一个在线竞赛网站。有一个名为:weeks的资源,它有一个start_date和一个end_date。这个has_many:条目,可以通过创建和销毁投票来对条目进行投票和投票。我正在尝试设置一个cookie,这样用户每周只能投票一次。但是我无法通过将Weeks end_date设置为到期来设置cookie。
如果我在EntriesController中使用以下代码,则cookie设置:
def upvote
@entry.votes.create
cookies.permanent[:voted] = { value: "#{@week.title} voted" }
redirect_to @week
end
但是,当我尝试传入end_date周时,cookie没有设置,也没有出现在浏览器资源中。
def upvote
@entry.votes.create
cookies[:voted] = { value: "#{@week.title} voted",
expires: @week.end_date.midnight }
redirect_to @week
end
使用before_action
使用:
@week = Week.find(params[:week_id])
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
查看代码时,@week
似乎是一个实例变量。 Cookie中的expires:
期待类Time
的对象。如果看起来像你的@ week.end_date以字符串形式出现,你可以这样做:
...
expires: Time.new(@week.end_date).midnight