Tag: mongoid

未定义的# kaminari“page”错误的方法页面。 rails_admin

我正在使用rails_admin。 当我去某些资源。 通过typin url localhost:3000/admin/rule 比它给我这个错误。 代码是: scope = Rule.all scope.page(1).per(2) 。 上面的代码在rails_admin gem.in一个名为mongoid.rb的文件中写入,放在adapter文件夹中。 完整的日志是: NoMethodError (undefined method `page’ for #): mongoid (2.4.8) lib/mongoid/criteria.rb:385:in `method_missing’ /home/usman/.rvm/gems/ruby-1.9.2-p290@system/bundler/gems/kaminari-809105ad782a/lib/kaminari/models/mongoid_extension.rb:11:in `page’ /home/usman/.rvm/gems/ruby-1.9.2-p290@system/bundler/gems/rails_admin-069819944cc9/lib/rails_admin/adapters/mongoid.rb:37:in `all’ /home/usman/.rvm/gems/ruby-1.9.2-p290@system/bundler/gems/rails_admin-069819944cc9/app/controllers/rails_admin/main_controller.rb:127:in `get_collection’ /home/usman/.rvm/gems/ruby-1.9.2-p290@system/bundler/gems/rails_admin-069819944cc9/app/controllers/rails_admin/main_controller.rb:39:in `list_entries’ /home/usman/.rvm/gems/ruby-1.9.2-p290@system/bundler/gems/rails_admin-069819944cc9/lib/rails_admin/config/actions/index.rb:30:in `block (2 levels) in ‘ 我该怎么做才能解决这个错误?

rails rails可以过滤给定字段的关联类的数量

我正在使用Rails 3和Mongoid。 我有一个Folder类,然后可以与其他User类共享 class Folder has_one :owner has_many :users 我正在尝试创建两个范围,一个可用于返回所有私人文件夹,另一个用于返回所有共享文件夹。 有没有办法计算范围内的关联数? scope :personal, where(:users.count => 0) #Erroring on count… scope :shared, where(:users.count.gt => 0) #Erroring on count… 我已经考虑过构建方法,但我更喜欢使用范围,因为我希望将它们与其他范围链接起来。

Ruby on Rails 4:使用rspec测试嵌套资源不起作用

我在rails应用程序上测试我的ruby时遇到了一些麻烦。 我有一个资源餐厅和一个嵌套的资源菜单。 路线文件: resources :restaurants do resources :menus 菜单型号: class Menu include Mongoid::Document belongs_to :restaurant accepts_nested_attributes_for :restaurant validates :name, presence: true validates :description, presence: true validates :restaurant, presence: true field :name, type: String field :description, type: String end 餐厅模特: class Restaurant include Mongoid::Document has_one :address, dependent: :destroy has_many :menus, dependent: :destroy accepts_nested_attributes_for :address, :menus validates […]

在Ruby哈希中提取`Moped :: BSON :: Document`属性

在Mongoid 3.0.21中,如何将所有模型的属性作为纯Ruby Hash ? 调用#attributes或#raw_attributes返回Moped::BSON::Document 。 虽然它实际上扩展了Hash , 几个哈希方法不能按预期工作。 特别是#except返回未修改的self ,而不是散列给定键的hash 。 更新 : Moped::BSON::Document正确inheritance了Hash行为。 我试图用符号命名属性,而不是字符串,这就是为什么#except不起作用的原因。 不久:做except(‘pictures’) , except(:pictures) 。

使用从其他(mongoid / rails)inheritance的名称空间和引用模型的正确方法是什么?

我有从Scenarioinheritance的模型HandlingScenario 。 像这样: ## models/scenario.rb class Scenario include Mongoid::Document end ## models/scenarios/handling_scenario.rb class Scenarios::HandlingScenario :handling_scenarios # In the `User` model, the reference is `has_many :handling_scenarios` end 但是当我尝试访问HandlingScenario类时,我遇到了麻烦: ➜ rails c Loading development environment (Rails 3.2.12) 2.0.0-p247 :001 > User.first.handling_scenarios LoadError: Expected /Users/christoffer/Projects/my_project/app/models/scenarios/handling_scenario.rb to define HandlingScenario 此外,当我尝试通过浏览器访问时,我收到此错误: Started GET “/scenarios/handling_scenarios” for 127.0.0.1 at 2013-10-06 19:41:29 +0200 […]

显示created_at时未定义的方法“getlocal”?

我使用rails 3.2.6,ruby 1.9.3和mongoid gem 3.0。 我想显示数据库条目的created_at字段,但得到以下错误: undefined method `getlocal’ for “Wed, 25 Apr 2012 15:04:37 -0400”:String 这是rails代码: Erstellt am: 有什么建议是什么问题? 有错误吗? 在我看来应该工作吗? 提前致谢!

Mongoid ::错误:: MixedRelations

我有一个用户模型嵌入“ 一对多 ”的关注列表,如下所示: class User include Mongoid::Document field :uid field :name field :user_hash embeds_many :watchlists end class Watchlist include Mongoid::Document field :html_url field :description #field :name field :fork_, :type => Boolean field :forks, :type => Integer field :watchers, :type => Integer field :created_at, :type => DateTime field :pushed_at, :type => DateTime field :avatar_url embedded_in :user […]

如何根据多个条件查找嵌入的Mongoid文档?

我有一个包含嵌入文档的Mongoid文档。 我想在其中存在具有多个条件的嵌入式文档的所有顶级文档中进行搜索。 TopDoc.where(‘inside.first_name’ => ‘Bob’, ‘inside.last_name’ => ‘Jones’) 但在我看来,这将与Bob Wever和Paul Jones的TopDoc相匹配,这是错误的。

我可以设置Mongoid查询超时吗? Mongoid不会长时间查询

Mongoid没有超时选项。 http://mongoid.org/en/mongoid/docs/installation.html 我希望Mongoid杀死长时间的查询。 如何设置Mongoid查询超时? 如果我什么都不做,Mongoid会像下面那样等待很长时间。 mongo > db.currentOp() { “opid” : 34973, “active” : true, “secs_running” : 1317, // <- too long! "op" : "query", "ns" : "db_name.collection_name", "query" : { "$msg" : "query not recording (too large)" }, "client" : "123.456.789.123:46529", "desc" : "conn42", "threadId" : "0x7ff5fb95c700", "connectionId" : 42, "locks" : { "^db_name" […]

设置mongoid哈希字段值

我在Rails项目中使用Mongoid(均为4.0.x),并且我有一个带有哈希字段的文档,该字段存储了一些无模式数据。 class Thing field :name, type: String field :mass, type: Integer field :info, type: Hash end 通过这种设置,我可以查询具有密钥的东西:endDate如下所示: Thing.where(“info.endDate”=>{‘$exists’=>true}) 这一切都很好用。 为此使用哈希字段:info字段很好,因为我想要存储的内容没有固定的模式,因而不同。 好的,但是,我不能在:info hash中使用相同的点语法来$set键/值对。 [1] thing.set(“info.endDate”=>Time.now) 引发Mongoid::Errors::UnknownAttribute错误。 它告诉我,我必须在我的模型中包含Mongoid::Attributes::Dynamic才能做到这一点,但这对我来说似乎不对。 哈希字段类型的要点似乎是允许您处理没有固定模式的数据。 看起来我不应该包含一个特殊的“动态属性”模块来使用哈希字段。 所以现在,我正在使用常规的旧[]语法更新值,然后在模型上调用save ,如下所示: thing.info[:endDate] = Time.now thing.save 但是很多时候它只是$set值会更好。 是否有其他语法来设置哈希字段值? 我错误的上述错误消息和动态属性是错误的? 我暂时不想对哈希字段进行两步更新吗? [1]诚然,我最近从mongomapper迁移过来,所以我对这种语法的期望部分是由于能够在mongomapper中做到这一点。