session满了

在网上看到ror生成验证码的方法时,有下面一段记述。

图形验证码的使用,首先要装上rmagick,将附件里的rb文件放在/app/models里,图片的引用src='xxx/code_image',则在xxx控制器的code_image方法定义如下:
Ruby代码

1. def code_image
2. session[:noisy_image]=NoisyImage.new(4)
3. session[:code] =session[:noisy_image].code
4. image = session[:noisy_image].code_image
5. send_data image, :type => 'image/jpeg', :disposition => 'inline'
6. end

def code_image
session[:noisy_image]=NoisyImage.new(4)
session[:code] =session[:noisy_image].code
image = session[:noisy_image].code_image
send_data image, :type => 'image/jpeg', :disposition => 'inline'
end


相信你看了以上的代码,也就知道怎么样验证用户输入的验证码是否一致了吧。
 

 

这段记述在使用过程中是会有些问题的,就是有时候图片会显示不出来,原因是session满了,在服务器的控制台中会显示异常的。

搞不懂为什么要把图片对象放到session里,把代码改成下面的就没事了。最近脑子又转的很慢了,所以记一笔。

 

  def code_image
    ni = NoisyImage.new(6)
    session[:code] = ni.code
    image = ni.code_image
    send_data image, :type => 'image/jpeg', :disposition => 'inline'
  end
 

 

你可能感兴趣的:(Ruby)