Rails,将日期拉入cookie到期时间

时间:2015-03-30 23:16:16

标签: ruby-on-rails ruby cookies model-view-controller controller

我目前正在建立一个在线竞赛网站。有一个名为: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])

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

查看代码时,@week似乎是一个实例变量。 Cookie中的expires:期待类Time的对象。如果看起来像你的@ week.end_date以字符串形式出现,你可以这样做:

 ...
  expires: Time.new(@week.end_date).midnight
相关问题