Rails Cookie 问题

Rails Cookie Issue

Ruby on rails 应用程序中有下面的新方法︰

def new
   if cookies[:owner].empty?
     cookies[:owner] = SecureRandom.hex
   end
   @movie = Movie.new
   @movie.owner = cookies[:owner]
end

基本上,每个新用户应该发出的代码 (虽然只是通过 cookie) 标识它们。因此当用户创建电影时,创建的 cookie 存储在owner字段。

因此这两个问题︰

  1. 使用.empty 吗?当从浏览器中删除 cookie 的方法返回一个undefined method空? 的牌︰ NilClass

  2. 当我没有 cookie 已设置在浏览器中,然后创建 cookie 的影片, [: 所有者] 值是不同于 @movie.owner 代码?

2014-12-31 00:00:00
问题评论:

我不确定如果我在很好地理解。您试图共享同一个 cookie 在不同的浏览器中?

回答:

  1. 的 cookie [: 所有者]将具有nil(如果尚未设置),或一个字符串 (如果已设置)。您正在寻找的方法是blank?,而不是empty?

    2.1.0 :003 > nil.blank?
    => true
    
    2.1.0 :005 > "i'm not blank".blank?
    => false
    
    2.1.0 :006 > "       ".blank?
    => true
    
  2. 至于第二个问题︰ 您在其中调用save方法?是否有任何回调无法重写owner属性对Movie模型?

您还可以使用此。

def new
    if !cookies[:owner]
        cookies[:owner] = SecureRandom.hex
    end
    @movie = Movie.new
    @movie.owner = cookies[:owner]
end
内容来源于Stack Overflow Rails Cookie Issue
请输入您的翻译

Rails Cookie Issue

确认取消