我在Rails项目中使用couchrest_model,我试图检索在couchdb.yml中定义的服务器URL。在Ruby中调用类方法
我可以看到server
是在connection.rb中定义的类方法,但是如何在代码中访问它?我想:
server = CouchRest::Model.server
但看到下面的错误:
NoMethodError (undefined method `server' for CouchRest::Model:Module)
我在Rails项目中使用couchrest_model,我试图检索在couchdb.yml中定义的服务器URL。在Ruby中调用类方法
我可以看到server
是在connection.rb中定义的类方法,但是如何在代码中访问它?我想:
server = CouchRest::Model.server
但看到下面的错误:
NoMethodError (undefined method `server' for CouchRest::Model:Module)
CouchRest::Model
是CouchRest::Model::Base
居住的命名空间。
您应该从Base
继承创建一个模型。
class Project < CouchRest::Model::Base
use_database 'projects'
end
而且由于Connection
混入Model::Base
(不Model
),那么你应该能够
Project.server
其中Project
是型号名称来访问它。
CouchRest::Model::Base.server
也应该可以工作,但它可能不是最好的解决方案,因为它不是面向模型的。
有看代码,服务器CouchRest ::模型定义::连接模块,然后将其包含在CouchRest: :Model :: Base类。所以,这应该工作:
server = CouchRest::Model::Base.server
请注意,我不知道这个宝石,所以这可能不是它的正确使用。您应该查看文档以获取更多详细信息。
虽然couchrest_model确实提供了访问server
方法,但我不建议尝试使用它。与传统的ORM或RDMS不同,没有理由不能从同一个项目访问多个服务器。
为每个模型提供的database
方法是连接细节的规范来源,可能是手动执行CouchDB操作最有用的方法。数据库对象也可以从模型实例中访问,这在处理proxied models时特别有用。
鉴于型号:
Project.database # => Database object
Project.database.server.uri # => Server URL
Project.database.root # => Database URL
而且在代理模式的情况下:
company = Company.first
company.invoices.database.root # => Database URL
class Project < CouchRest::Model::Base
use_database 'projects'
end
如下您可以访问数据