Tag: mongoid

Mongoid:使用多个数据库?

我在rails应用程序中使用MongoDB和MongoID,某些模型如何成为同一服务器上不同mongo数据库的一部分? 我怎么能做到这样的事情? 我以前遇到过与mysql相同的问题,无法找到合理的解决方案。 有什么想法吗?

Rails嵌套属性表单用于多态/单表inheritance关联

我正在使用一个表单(使用SimpleForm),允许您编辑嵌入的关联。 我遇到的问题是嵌套模型是子类,因此它们是具有可能不同字段的不同类型。 我正在为每种类型的模型创建隐藏表单,并使用JavaScript显示所选类型的表单。 仅供参考,我使用以下gem: Rails 3.2 Mongoid 简单的forms 这是我到目前为止的简化示例: class Garage include Mongoid::Document embeds_one :vehicle accepts_nested_attributes_for :vehicle end class Vehicle include Mongoid::Document embedded_in :garage attr_accessible :_type end class Car < Vehicle field :car_field attr_accessible :car_field end class Truck < Vehicle field :truck_field attr_accessible :truck_field end 在控制台中: > garage = Garage.new > garage.vehicle = Car.new(car_field: ‘something’) […]

使用script / delay_job创建delayed_job worker时出现未定义的方法错误

运行多个工作人员时遇到一些问题。 使用rake jobs:work创建rake jobs:work即使多次调用rake jobs:work作业也没有问题,但是当使用ruby script/delayed_job -n 5 start all创建工作程序时, ruby script/delayed_job -n 5 start all作业都会在Syck::DomainType上使用未定义的方法失败。 我搜索了很多,但似乎无法找到解决方案。 我在Mongoid后端运行DelayedJob。 gem版本: 耙0.9.2 rails 3.0.6 延迟工作2.1.4 delayedjob_mongoid 1.0.2 有没有人遇到过类似的错误/有解决方案? 或者缺少一些关于为什么/如何创建工人的信息取决于调用它们的方式?

Mongoid store_in产生随机结果

我正在使用Rails 3.2.2和mongoid 2.4.6。 为了保持我的集合小,我使用“store_in”语句将子对象存储在sepparate集合中的基类中。 我的代码如下所示: class BaseClass include Mongoid::Document end class ChildClass1 < BaseClass store_in :child_1 end class ChildClass2 < BaseClass store_in :child_2 end 似乎对象随机存储在或其他子集合中。 Child1类型的对象有时会存储在集合Child2中。 以下是我在日志中看到的令人惊讶的事情: Started POST “/child_class_1” for 127.0.0.1 at 2012-05-22 10:22:51 -0400 Processing by ChildClass1Controller#create as HTML MONGODB (0ms) myproject_development[‘child_2’].insert…. 它来自哪里? 这是mongoid,rails还是mongodb中的错误?

由于* _attributes后缀的forms,强参数,嵌套属性和Mongoid似乎不起作用?

我正在尝试在我的主要Person模型上嵌入属性组,以帮助保持我的代码组织,但Rails 4的强大参数正在阻碍。 情景 我有一个Person模型和一个PersonName模型,如下所示: class Person include Mongoid::Document embeds_one :name, class_name: ‘PersonName’ accepts_nested_attributes_for :name end class PersonName include Mongoid::Document embedded_in :person, inverse_of: :name # fields here end 然后我在表单中使用fields_for帮助程序将PersonName属性嵌套在Person _form : 最后我允许控制器中的name属性,以便Strong Params允许嵌套属性通过: def person_params params.require(:person).permit(:name) end 问题 它不起作用,我得到错误Unpermitted parameters: name_attributes 。 发生的事情是当我调用f.fields_for :name … a“_attributes”get附加到HTML表单中的字段时。 例如,如果我有一个字段first_name那么表单如下所示: 代替: 据我所知,这是预期的行为,所以似乎.permit方法是事情无法工作的地方。 尝试过的工作 我已经尝试将Strong Params行更改为: params.require(:person).permit(:name_attributes) 但这不起作用。 使用permit! 确实有效,但我不喜欢它,因为据我所知它是一个完整的反模式。 […]

Rails Mongoid无法进行身份validation – 失败,错误13:“未授权查询my_db.my_collection”

据说这个问题已解决了最新版本的轻便摩托车但仍然在我身上发生。 我有一个带有Mongoid的rails 4.2应用程序,为具有readWrite和dbOwner角色的MongoDB DB创建了一个用户,并在mong.conf文件中设置了auth = true 。 我可以使用Mongo shell或使用Mongo驱动程序的简单Java应用程序使用该用户凭据在DB上执行任何操作。 但是,当尝试使用Mongoid进行身份validation时,我总是会收到此错误: 失败,错误13:“未授权查询my_db.my_collection” 这是我的mongoid.yml文件的相关部分: production: # Configure available database sessions. (required) sessions: # Defines the default session. (required) default: # Defines the name of the default database that Mongoid can connect to. # (required). database: my_db hosts: – localhost:27017 username: my_username password: my_password 我也尝试用服务器的远程地址替换主机并远程访问它(这与禁用的身份validation选项一起使用)没有成功。 为了它的价值,我可以通过调试mpped / node.rb文件看到凭证,在ensure_connected方法中我看到@credentials变量包含我的用户名和密码我在这里缺少什么? […]

使用长度标准查询MongoDB

我在MongoDB集合中有几个文档,带有字段’name’(这是一个String)。 如何执行7 <= name.length <= 14

具有Mongoid和Rails的字段别名

MongoDB中的常见做法是使用短密钥名称来节省空间。 例如,有人可能想使用“fn”而不是“first_name” 然而,在你的应用程序中,如果你在整个地方使用“fn”,你就会被搞砸了。 太难看了。 特别是对于Rails,在Mongoid中声明字段时是否有一种简单的方法来指定别名? 另外,有没有人知道任何使用Mongoid的开源示例项目? 谢谢!

如何直接从Ruby查询MongoDB而不是使用Mongoid?

我正在编写一个使用MongoDB和Mongoid的Rails应用程序的迁移。 我的迁移目前使用我的模型使用Mongoid查询和更新记录,但性能低于标准。 我本质上是更新大型集合中的所有记录并进行n + 20次查询。 我花了一个小时在本地运行(并没有完成)后杀死了迁移。 我希望能够毫不费力地将原始查询运行到mongo。 我假设有一些方法可以从Mongoid访问mongo驱动程序,因为Mongoid已经加载了与数据库的连接。 如何访问数据库以直接运行更新查询?

Mongoid / Mongodb和查询嵌入式文档

我有Author和Book模型。 Author有许多嵌入式Books 。 我可以查询嵌入式Books ,还是首先要获取Authors以获取Books ?