小编dem*_*sus的帖子

会议越过了.Ruby on Rails

我有一个使用设计进行身份验证的应用程序.在红宝石1.9.2上的Rails 3,乘客在nginx之上.

这是我的问题:我已经注意到,我的会话偶尔会越过.在以一个用户身份登录时,我有时会成为另一个用户.这真是一个可怕的问题.我已经设法通过使用active_record会话存储来停止它.但我对它可能发生的地方感到难过.它在使用cookie存储和memcached存储时都会发生.我不知道从哪里开始调试.我已经完成了所有代码,而且我只是从'current_user'读取而不是写作.我没有任何代码存储会话中的项目.

任何人都可以向我提出有关在何处或如何发生这种情况的建议?

更新:

我在页面顶部设置了一个div来转储每个请求的会话内容.它不仅仅是用户切换,而是整个会话.我在会话中设置了一些虚拟变量,只是为了看看会发生什么.当会话越过时(用户A变为用户B)用户A现在看到用户B具有的虚拟变量.用户B已注销.

更新2

我在堆栈溢出中发现了另一个问题,它描述了同样的问题:在Rails中,什么可能导致用户有另一个用户的会话?

看起来它可能是一个乘客问题?但更重要的是,它怎么会发生呢?这是一个真正的大问题.我怎么制止这个?

更新3

我现在正在使用Unicorn来提供我的应用程序.我设置了config.threadsafe!并开始专门使用活动记录会话.没有更多的memcached会话.问题消失了.至少我可以停止拔头发,因为安全孔堵了.

我仍然想知道究竟是什么导致了它.大多数教程都展示了如何使用默认的产卵方法来设置乘客.当然,我认为memcached在会话管理方面优于其他方法.特别是在多应用服务器环境中.

更新4

好的,上次和最后的更新.这是使用相同memcached连接的分叉进程的问题.我通过使用dalli memcached客户端修复它,并重置了独角兽或乘客的after_fork回调中的连接.

ruby session devise ruby-on-rails-3

17
推荐指数
1
解决办法
3451
查看次数

jquery getResponseHeader总是返回'undefined'?

我有一个表格,我通过ajax提交.我正在使用jquery表单插件.我想要做的是获取从我的服务器返回的'Location'标题.我可以在萤火虫中看到它.但是每当我在成功回调中调用getResponseHeader()函数时,它总是返回'undefined'.

码:

form.ajaxForm({
  dataType: 'xml',
  data: {format: 'xml'},
  resetForm: true,
  success: function(xml,status,xhr){
    var location = xhr.getResponseHeader('Location');
    alert(location);
  });
Run Code Online (Sandbox Code Playgroud)

位置未定义.但我可以在萤火虫中看到"位置"标题.我错过了什么?即使我从xhr对象调用getAllResponseHeaders(),它也会返回'undefined'

ajax jquery xmlhttprequest jquery-forms-plugin

16
推荐指数
2
解决办法
2万
查看次数

pg_dump忽略表序列?

我最近一直在玩PostgreSQL,并且无法理解如何备份和恢复单个表.

我使用pgadmin3备份数据库中的单个表,以便将其复制到其他服务器.当我尝试对文件执行pg_restore时,我收到错误消息,指出该序列不存在:

pg_restore: [archiver (db)] could not execute query: ERROR:  relation "businesses_id_seq" does not exist
    Command was: 
CREATE TABLE businesses (
    id integer DEFAULT nextval('businesses_id_seq'::regclass) NOT NULL,
    name character varyin...
Run Code Online (Sandbox Code Playgroud)

看起来转储文件不包含我的自动递增列的序列.如何将其包括在内?

postgresql pg-dump pg-restore

15
推荐指数
1
解决办法
2万
查看次数

如何检测html元素是否可以附加子节点?

我在我的应用程序中创建了一个名为"loading"的自定义jquery事件.当触发此事件时,我想要使用微调器附加一个masking元素.我可以找出那个没有问题的部分.但是,某些元素(图像,表单输入等)不能附加子元素.我需要能够检测此事件的目标是否可以接收子元素.如果它不能,那么我将把微调器和蒙版添加到它的父元素.

javascript jquery

12
推荐指数
1
解决办法
1069
查看次数

如何设置轮胎弹性搜索的默认分析器?

我最近一直在尝试使用ruby on rails.我无法将数据编入索引,因此我可以搜索包含复数和非复数关键字的项目.

轮胎将允许我为每个映射属性分配一个分析器:

mapping do
  indexes title, analyzer: 'snowball'
  indexes body, analyzer: 'snowball'
end
Run Code Online (Sandbox Code Playgroud)

现在,假设我在"测试"标题中有一个关键字

如果我使用查询中的属性进行搜索: http:// localhost:9200/myindex/mymapping/_search?q = title:test 它将起作用.

但是,如果我进行常规搜索而不指定如下属性:
http:// localhost:9200/myindex/mymapping/_search?q = test

它找不到该文件.

如何指定我希望默认分析器为"雪球",因此我不必指定要搜索的属性?

ps我正在使用轮胎宝石.所以请尽可能地回答这个问题.

ruby-on-rails elasticsearch tire

4
推荐指数
1
解决办法
4669
查看次数

具有Mongoid Embedded和Standalone的Rails模型

我如何创建一个Mongoid模型,该模型能够保存在自己的集合中,并嵌入到另一个文档中?

mongodb mongoid ruby-on-rails-3

4
推荐指数
1
解决办法
1164
查看次数