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 设计,用于获取与某个用户关联的所有记录