gpt4 book ai didi

ruby-on-rails - Rails 3 cookie 未定义

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:09 24 4
gpt4 key购买 nike

我有一个 Rails 3 博客。我希望每个帖子都有一个“赞”按钮。单击它会将此操作保存到数据库中,并存储到刚刚喜欢该帖子的用户的 cookie 中(以禁止再次执行相同的操作)。

我写了一个简单的 Action 来做到这一点:

def like
render :nothing => true

id = params[:post_id]
cookies.permanent[:like_history] ||= []

unless cookies.permanent[:like_history].include? id
cookies.permanent[:like_history] << id

@post = Post.find(id)
@post.update_column(:likes, @post.likes + 1)
end
end

但是当我尝试记录内容时,我得到了 NoMethodError (undefined method '[]' for nil:NilClass)。它指向这一行:cookies.permanent[:like_history] ​​||= [] 好像 cookies.permanent 不是一个数组。

我这里的 cookie 是不是做错了什么?

最佳答案

事实证明,||= 运算符按照 Rails 标准算作“读取”,这实际上是有道理的。你不能用cookies.permanent[:symbol]“读”,那是为了写,你用cookies[:symbol]读。所以我将该行修改为:

cookies.permanent[:like_history] ​​= ""除非定义? cookies[:like_history]

关于ruby-on-rails - Rails 3 cookie 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com