inf*_*ity 5 ruby browser cookies ruby-on-rails
我在rails应用程序的ruby中有以下新方法:
def new
if cookies[:owner].empty?
cookies[:owner] = SecureRandom.hex
end
@movie = Movie.new
@movie.owner = cookies[:owner]
end
Run Code Online (Sandbox Code Playgroud)
基本上,每个新用户都应该被发布一个识别它们的代码(尽管只是通过cookie).因此,当用户创建电影时,创建的cookie将存储在该owner字段中.
所以有两个问题:
使用.empty?当我从浏览器中删除cookie时,返回一个undefined method空的?' 为零:NilClass`
当我确实已经在浏览器中设置了cookie,然后创建了一个电影时,cookies [:owner]的值与@ movie.owner代码不同?
cookies [:owner]将是nil(当它尚未设置时)或String(当它被设置时).你正在寻找的方法是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
Run Code Online (Sandbox Code Playgroud)至于你的第二个问题:你在哪里调用这个save方法?你有没有Movie可以重写owner属性的模型回调?
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |