Rails 设计与 Couchbase

Posted

技术标签:

【中文标题】Rails 设计与 Couchbase【英文标题】:Rails Devise with Couchbase 【发布时间】:2012-12-20 06:41:32 【问题描述】:

设置一个新的 Rails 应用程序,我想使用 Couchbase 2.0 来存储所有数据,并使用 Devise 进行用户身份验证,但我在 ORM(对象关系映射)中遇到错误,这意味着 Devise 没有知道如何与 Couchbase 交谈。 Couchbase 是一个类似于 Cassandra 的 NoSQL 数据存储,所以我想知道是否有人将 Devise 配置为与 Couchbase、Cassandra 或其他 NoSQL 一起使用并且可以提供帮助?

这是一个简单的 Rails 应用,使用

创建

rails new myapp -T -O

编辑Gemfile,添加

gem "couchbase"
gem "couchbase-model"
gem "devise"

设置 Couchbase 配置

rails generate couchbase:config 并使用数据库连接信息编辑了 config/couchbase.yml。

rails generate devise:install 创建了 config/initializers/devise.rb

查看config/initializers/devise.rb,我看到它自动放入require 'devise/orm/couchbase'

rails generate devise User

失败:

/usr/local/rvm/gems/ruby-1.9.3-p362/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- devise/orm/couchbase (LoadError)

设计库中没有设计/orm/couchbase。

如果我将 config/initializers/devise.rb 中的 couchbase orm 行更改为

require 'devise/orm/active_record.rb'

当我尝试执行 rails generate devise User 时遇到不同的错误:

error couchbase [not found]

任何想法如何继续,或者 Devise 还没有为 Couchbase 和/或 NoSQL 数据存储做好准备?

【问题讨论】:

【参考方案1】:

没错,目前还没有人为 Couchbase 和 Devise gem 编写过 ORM 适配器。我相信他们只有几个 ORM,ActiveRecord/SQL 是主要的。您可以使用 Sorcery gem,它允许集成/黑客攻击并与 Couchbase 一起使用。我自己还没有做过,但前几天我正在研究它。

如果我有机会为 Sorcery 制作指南,我会更新此答案以便您收到通知,或者在 Twitter 上关注我:http://twitter.com/scalabl3

【讨论】:

我在我的魔法分支中添加了 Couchbase 支持 github.com/alexanderedge/sorcery 太棒了!太好了,我会发推文

以上是关于Rails 设计与 Couchbase的主要内容,如果未能解决你的问题,请参考以下文章

Rails 最佳 API 设计,用于获取与某个用户关联的所有记录

WordPress 用户迁移到 Rails 设计

Rails - 设计/Omniauth - 无方法错误配置

与Sinatra一起设计

ruby 这是Jim Weirich的“与Rails脱钩”谈话的摘录,讲解了如何应用六边形设计模式制作前夕

Ruby on Rails SOA 设计资源和示例