小编The*_*per的帖子

如何使Rails 4.2与Postgres Jsonb一起使用?

我看过一些博客 帖子 声称rails 4.2在Postgres 4.2中增加了对新Jsonb数据类型的支持.

但是,谷歌搜索让我得到如何实际使用数据类型的零结果.由于我不依赖于键顺序而且我希望我的应用程序快速,我非常希望在我的一个模型中使用Jsonb而不是json.

它实际上是在4.2中添加的,如果是这样,你如何使用它?

ruby-on-rails rails-activerecord ruby-on-rails-4.2

7
推荐指数
1
解决办法
5936
查看次数

从Rails到Phoenix共享身份验证/数据?

背景

我有一个相当典型的Rails应用程序,它使用Devise进行身份验证管理.在构建这个应用程序时,我意识到实时聊天将是一个很棒的功能.理想情况下,当然,这将使用Websockets,以减少服务器上的轮询负载(以及使其更容易实现,因为您不必管理轮询).

我很快意识到Ruby并不适合同时打开大量并发连接.然而,Phoenix是用Elixir编写的,所以我可以使用Erlang VM,它非常适合长连接.如果所有聊天数据都与主应用程序数据库分开存储,这似乎也会非常有益,这也应该减少将来的负载.

问题

我希望能够使用户完全看不到这种分离.他们访问www.example.com/chat,并从中加载所有相关数据chat.example.com并启动websockets,而无需他们登录到单独的服务.我认为使用a <iframe>可能就是这样做的方法.

我的问题是在两个应用程序之间共享身份验证和数据.Rails应用程序需要能够在Phoenix应用程序上创建对话以响应某些事件.Phoenix应用程序需要知道当前对Rails进行身份验证的用户以及有关用户的常规数据.

使用Rails应用程序作为ID提供程序的OAuth流程起初似乎很合适,但我无法找到一种方法让Phoenix应用程序自动获得访问权限.我也对Phoenix应用程序中存在的用户记录有一些顾虑 - 它应该知道主应用程序上的所有用户,因此即使他们还没有打开过聊天,你也可以开始与用户聊天.

这样做最好的方法是什么?我的直觉说这将涉及window.postMessage到某种令牌系统,但是我想问一下,在我不小心造成一个不安全的混乱之前,这种普遍接受的做法是什么.

authentication ruby-on-rails devise phoenix-framework

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