作者davidwu0123 (战乙女)
看板Ruby
标题Re: [问题] 如何控制cookie的值
时间Mon Nov 4 22:52:22 2013
先谢谢您的回答。
我想再请教版上前辈们一个问题。
我现在在测试session的功能,请问有没有人知道session又要怎麽做才能储存新的数值?
我目前写的code如下:
初始:
require 'cgi'
require 'cgi/session'
cgi = CGI.new
session = CGI::Session.new(cgi, "prefix"=>"rhtml_")
session['win'] = (session['win']).to_i #纪录胜场数
session['lose'] = (session['lose']||0).to_i #败场数
session['even'] = (session['even']||0).to_i #平手数
print cgi.header({"charset" => "utf-8"})
需要更新的情况:
when str_result[0]
session['even']=session['even'].to_i+1
when str_result[1]
session['win']=session['win'].to_i+1
when str_result[2]
session['lose']=session['lose'].to_i+1
之後用<%= session['win']%>来显示胜败(我现在用的是erb,所以是rhtml档)
但无论如何就是纪录不起来,可是范例也没有用到cgi.header之类的,
请问我应该要怎麽做比较好呢..
※ 引述《danny8376 (钓到一只猴子@_@)》之铭言:
: ※ 引述《davidwu0123 (战乙女)》之铭言:
: : 吃光光了 (X
: 写CGI的一个重点 => 他什麽都不帮你 全都要自己来
: 所以当你改了"Cookie"後
: 其实只做到把Server上(Ruby里)的那个Cookie物件改了
: 而如果要"通知"客户端这个Cookie有更动(需要更动)
: 则必须要在HTTP Response里多加Set-Cookie的Header
: 而这就是cgi.header(... , "cookie" => ...)这段的功用
: 所以如果没这段就不会送出任何"需要修改Cookie"的相关资讯
: 就会变成只是Server端自己爽而已
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 133.51.83.90
1F:推 danny8376:有呼叫session.update吗? 11/05 02:09
2F:→ danny8376:对了 修下标题 这已经不是cookie了www 11/05 12:30
感谢你,在最後面加了session.update就可以了。
不过我看到你这句语法的第一个反应是到处找真的有哪个范例用到这句语法吗?
不知道是不是我看document的方式有误(我的本科跟写程式无关),
也就是其实我不是很会利用document来解决问题,
所以虽然知道我这边缺了一句"session.update",
在网路找上了半天都没有看见"session.update"这一句该怎麽写才正确。
现在试出来才确定document里面的确有写:
http://ruby-doc.org/stdlib-1.9.2/libdoc/cgi/rdoc/CGI/Session.html
只不过document里面method的表现方式是#update,
我完全无法理解加"#"的意思是什麽所以不知道该怎麽试。
结果刚才其实是用"session.update" ruby去搜寻范例才找到实际使用的例子:
http://ppt.cc/STYY
总而言之真是太感谢你了,基础知识不够老是卡在很小的点上面。
谢谢。
※ 编辑: davidwu0123 来自: 133.51.83.90 (11/05 16:38)
※ 编辑: davidwu0123 来自: 133.51.83.90 (11/05 16:41)
※ 编辑: davidwu0123 来自: 133.51.83.90 (11/05 16:42)
3F:推 akaing:Class#method 是表示这是个 instance method 11/15 19:48
4F:→ akaing:Class::method 表示这是class method. 11/15 19:48
5F:→ davidwu0123:了解了 谢谢 11/16 21:19