我正在建立协会如下
person embeds one address
address references one country
address references one province
country embeds many provinces
以上协会好吗?我太困惑如何构建它们.我不知道mongodb和mongoid用于建立联想的确切用途.
我的主要关注点是何时使用嵌入式和何时使用引用关联?
我试图仅在满足条件时才包括模块。
module PremiumServer
def is_premium
true
end
end
class Server
include Mongoid::Document
include PremiumServer if self.premium
field :premium, :type => Boolean, :default => false
end
Run Code Online (Sandbox Code Playgroud)
这是行不通的,我不知道为什么。有人可以告诉我如何根据满足上述条件的条件来包含模块吗?
谢谢!
编辑:
我在这里找到了解决问题的答案:Mongoid和载波
但是,我将问题授予最高答案,因为这可能是更有用的方法。
我一直在尝试在Ubuntu上使用Mongoid和Rails.我通过apt-get安装了mongoDB.但是当我尝试运行rails服务器时,我收到此错误:
/home/myusername/.rvm/gems/ruby-1.9.2-p180@mysite/gems/mongo-1.3.1/lib/mongo/connection.rb:518:in`connect':无法连接到主节点at localhost:27017(Mongo :: ConnectionFailure)
我刚刚使用Mongoid,任何帮助将不胜感激.非常感谢提前!
我有一个名为"GradebookSettings"的Mongoid模型.我已经进入变形并添加:
inflect.singular("GradebookSettings","GradebookSettings")
当我进入irb时,它正确地将"成绩簿设置"单独化为"成绩簿设置".但是,当我尝试访问相关模型时,它会不断尝试将其单一化为GradebookSetting.
我正在使用Mongoid.我很想用两个s来复数成绩簿设置,但我宁愿不这样做.
谢谢!
我确信这很简单,但我错过了一些东西.这一直以前都有效.我在Rails 3.1上使用Mongoid.
a = {"title"=>"bad2", "starts_at(1i)"=>"2011", "starts_at(2i)"=>"9", "starts_at(3i)"=>"12", "starts_at(4i)"=>"10", "starts_at(5i)"=>"49", "ends_at(1i)"=>"2011", "ends_at(2i)"=>"9", "ends_at(3i)"=>"12", "ends_at(4i)"=>"11", "ends_at(5i)"=>"49", "all_day"=>"0", "description"=>"foo2"}
e = Event.new(a)
=> #<Event _id: 4e6d765af11aac06e8000004, _type: nil, created_at: nil, updated_at: nil, title: "bad2", starts_at: nil, ends_at: nil, all_day: false, description: "foo2", starts_at(1i): "2011", starts_at(2i): "9", starts_at(3i): "12", starts_at(4i): "10", starts_at(5i): "49", ends_at(1i): "2011", ends_at(2i): "9", ends_at(3i): "12", ends_at(4i): "11", ends_at(5i): "49">
ruby-1.9.2-p290 :020 > e.valid?
=> true
ruby-1.9.2-p290 :021 … 目前在我的rails应用程序中,记录位于以下URL:
http://www.mysite.com/items/fecffe6aa299a6050274ed22
但相反,我希望他们会这样:
http://www.mysite.com/items/item-title-here
关于如何实现这一目标的任何想法?
我目前正在开发一个rails应用程序,我们在后端使用mongoid/mongoDB.我知道我不需要像迁移这样的ActiveRecord来迁移模式,但我需要在更改mongoid模型定义时迁移数据.有没有其他人在那里遇到同样的情况,如果是这样你怎么处理它?
ruby-on-rails mongodb rails-migrations mongoid ruby-on-rails-3
我正在使用带有mongoid(4.0.0 alpha1)的rails 4.问题是,当我尝试使用控制器获取记录时
Model.where(:status => 'Active')
Run Code Online (Sandbox Code Playgroud)
这需要太长时间(大约10秒).当我尝试在控制台中查询记录时,问题也一样.Collection有近400多条记录.
但是在mongodb控制台中获取记录
db.collection.find({status: "Active"})
Run Code Online (Sandbox Code Playgroud)
很快
mongoid 4.0.0.alpha1有什么问题吗?有任何建议如何改善rails中的查询响应时间?
提前致谢
我正在尝试查找和记录,记录是否为零,我不希望它在我的阵列上像这样:
@kid << Kid.find_only_kid(k) unless nil
Run Code Online (Sandbox Code Playgroud)
但是当我得到一个nil时,记录会插入到数组中.
这是我的模型上的find_only_kid方法的代码:
def self.find_only_kid(kid)
Kid.where(_id: kid.to_s, parent: false, teacher: false).first rescue nil
end
Run Code Online (Sandbox Code Playgroud) 我XYZ收集的文件如下.
"_id" : ObjectId("55311e4487216d7063040000"),
"colours" : [
{
"value" : 1,
"colour" : "red"
},
{
"value" : 2,
"colour" : "green"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要更新值为1的颜色名称.我应该写什么查询?
我使用的是rails 4.1.2,mongoid 4.0.0.
请帮忙.