标签: mongoid

15
推荐指数
2
解决办法
4442
查看次数

Rails:在MongoDB中存储JSON

我从远程站点获取多个类似的JSON对象,并希望将它们存储在本地MongoDB中.

最好的方法是什么?(最好通过Mongoid或Mongo-mapper宝石)

谢谢

ruby-on-rails mongodb mongomapper mongoid

15
推荐指数
2
解决办法
8065
查看次数

field_for和嵌套形式与mongoid

有人可以给我使用mongoid的嵌套表单的工作示例吗?

我的模特:

class Employee 
  include Mongoid::Document 
  field :first_name 
  field :last_name 
  embeds_one :address 
end

class Address 
  include Mongoid::Document 
  field :street 
  field :city 
  field :state 
  field :post_code 
  embedded_in :employee, :inverse_of => :address 
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongoid ruby-on-rails-3

15
推荐指数
1
解决办法
8361
查看次数

在MongoDB中创建简短,唯一的对象ID

我正在使用Rails/Mongoid创建一个类似于instagram的应用程序.我想要一个可以在http://instagr.am/p/DJmU8/等网址中使用的唯一ID

最简单的方法是什么?我可以从Mongo创建的默认BSON ObjectID中获取这样的ID吗?

mongodb mongoid

15
推荐指数
3
解决办法
2万
查看次数

在Rails中使用Mongoid的MongoDB - 地理空间索引

MongoDB具有非常好的地理空间索引功能.我怎样才能在带有Mongoid的Rails中使用它?

ruby ruby-on-rails geolocation mongodb mongoid

15
推荐指数
2
解决办法
8764
查看次数

Mongoid和simple_form,布尔类型不会创建复选框

我从mongoid和simple_form开始.如果我有一个模型:type => Boolean并在带有= f.input的(haml)视图中渲染它,它会创建一个文本输入字段而不是一个复选框.

doc说boolean映射到一个复选框,但我怀疑布尔值和布尔值的处理方式不同.

我可以通过向simple_form添加:as => boolean来解决这个问题.

1)这是预期还是我做错了什么?2)有没有办法添加布尔到simple_form的一般映射?3)我应该为simple_form生成一个问题来纠正这个问题吗?

提前致谢.

mongoid ruby-on-rails-3 simple-form

15
推荐指数
1
解决办法
2027
查看次数

使用mongoid查看MongoDB中的现有索引

我想看看MongoDB使用的现有索引.我可以做相同的

$ mongod
> use my_db
> db.system.indexes.find()
Run Code Online (Sandbox Code Playgroud)

使用Mongoid?

$ rails console
> ?
Run Code Online (Sandbox Code Playgroud)

使用MongoHQ从我的heroku应用程序很方便.谢谢!

indexing mongoid

15
推荐指数
1
解决办法
4775
查看次数

MongoDB/Mongoid和Rails 3的日期时间没有填充

这是我的模型中的代码

 include Mongoid::Document
 include Mongoid::Timestamps

 field :message, :type => String
 field :send_at, :type => DateTime
Run Code Online (Sandbox Code Playgroud)

这是我的表单部分的代码

 <%= f.label :send_at %><br />
 <%= f.datetime_select :send_at %>
Run Code Online (Sandbox Code Playgroud)

但是从不填充日期和时间.我确保Mongo和Mongoid也是最新的.不确定是否有我遗漏的东西.

[更新日志条目]

Started POST "/notifis" for 127.0.0.1 at Mon Oct 18 05:48:05 -0400 2010
Processing by NotifisController#create as HTML
Parameters: {"commit"=>"Create Notifi",
"authenticity_token"=>"/hrlnvA2Xn5NqGgCkPFAQV254IHPJEvZoLxOYNNUwhc=", "_snowman"=>"?",
"notifi"=>{"send_at(2i)"=>"10", "is_sent"=>"0", "send_at(3i)"=>"18",
"send_at(4i)"=>"09",     "message"=>"erwer", "send_at(5i)"=>"48", 
"send_at(1i)"=>"2010"}}
MONGODB noti_development['notifis'].insert([{"send_at(2i)"=>"10", "created_at"=>Mon Oct 
18 09:48:05 UTC 2010, "is_sent"=>false, "updated_at"=>Mon Oct 18 09:48:05 UTC 2010, 
"_id"=>BSON::ObjectID('4cbc17d5c24d7602bc00002d'), "send_at(3i)"=>"18", 
"message"=>"Sample Message", "send_at(4i)"=>"09", "send_at(1i)"=>"2010", 
"send_at(5i)"=>"48"}])
Redirected to …
Run Code Online (Sandbox Code Playgroud)

ruby mongodb mongoid ruby-on-rails-3

14
推荐指数
2
解决办法
5377
查看次数

嵌套属性中的Rails/Mongoid错误消息

我有一个定义如下的联系信息类:

class ContactInfo
  include Mongoid::Document

  validates_presence_of :name, :message => ' cannot be blank'

  field :name, :type => String
  field :address, :type => String
  field :city, :type => String
  field :state, :type => String
  field :zip, :type => String
  field :country, :type => String
  embedded_in :user
end
Run Code Online (Sandbox Code Playgroud)

此联系信息类嵌入在我的用户类中的嵌套属性:

class PortalUser
  include Mongoid::Document
  accepts_nested_attributes_for :contact_info
end
Run Code Online (Sandbox Code Playgroud)

当我尝试保存没有名称的用户时,我收到如下错误消息:

联系信息无效

但是,这对最终用户来说不是很有用,因为他或她不知道哪些联系信息无效.REAL消息应为"名称不能为空".但是,此错误不会向上传播.有没有办法让user.errors中的'Name not not blank'消息而不是'Contact info is invalid'错误消息?

谢谢

validation nested propagation mongoid

14
推荐指数
1
解决办法
4195
查看次数

设置mongoid哈希字段值

我在Rails项目中使用Mongoid(均为4.0.x),并且我有一个带有哈希字段的文档,该字段存储一些无模式数据.

class Thing
  field :name, type: String
  field :mass, type: Integer
  field :info, type: Hash
end
Run Code Online (Sandbox Code Playgroud)

通过这种设置,我可以查询具有如下关键字的内容:endDate:

Thing.where("info.endDate"=>{'$exists'=>true})
Run Code Online (Sandbox Code Playgroud)

这一切都很好用.对这个:info字段使用哈希字段是很好的,因为我想要存储的东西没有固定的模式,并且从一个东西到另一个东西各不相同.

好吧,但是,我不能$set:info哈希中的键/值对使用相同的点语法.[1]

thing.set("info.endDate"=>Time.now) 
Run Code Online (Sandbox Code Playgroud)

引发Mongoid::Errors::UnknownAttribute错误.

它告诉我,我必须Mongoid::Attributes::Dynamic在我的模型中包含这样做,但这对我来说似乎不对.哈希字段类型的要点似乎是允许您处理没有固定模式的数据.我似乎不应该包含一个特殊的"动态属性"模块来使用哈希字段.

所以现在,我正在使用常规的旧[]语法更新值,然后调用save模型,如下所示:

thing.info[:endDate] = Time.now
thing.save
Run Code Online (Sandbox Code Playgroud)

但是很多时候它会发生这样$set的价值更好.是否有其他语法来设置哈希字段值?我错误的上述错误消息和动态属性是错误的?我暂时不想对哈希字段进行两步更新吗?

[1]不可否认,我最近从mongomapper迁移过来,所以我对这种语法的期望部分是由于能够在mongomapper中做到这一点.

ruby-on-rails mongodb mongoid mongoid4

14
推荐指数
1
解决办法
4774
查看次数