我们有一个带有嵌入式项目的模型条目:
class Entry
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Spacial::Document
embeds_many :items, cascade_callbacks: true
...
class Item
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Spacial::Document
embedded_in :entry
...
Run Code Online (Sandbox Code Playgroud)
如果我按项目ID直接查询mongo:
{"items._id" : ObjectId("50536b18baa072000f000360")}
Run Code Online (Sandbox Code Playgroud)
它返回条目:
505363b36181ce00020006b1 {"created_at":"2012-09-14T17:04:51Z","items":[{"_ id":"50536b1a2b17b3 ...
然而,当我通过Mongoid查询时:
irb(main):002:0> Entry.where('items._id' => '50536b18baa072000f000360')[0]
=> nil
Run Code Online (Sandbox Code Playgroud)
所有其他查询都有效(对于项目和输入字段的其他字段).但不是为了id.
我们正在运行mongoid(2.4.12).
嘿,我们有一个库类(lib/Mixpanel)调用延迟作业,如下所示:
class Mixpanel
attr_accessor :options
attr_accessor :event
def track!()
..
dj = send_later :access_api # also tried with self.send_later
..
end
def access_api
..
end
Run Code Online (Sandbox Code Playgroud)
问题是当我们运行rake jobs:work:我们得到以下错误:
undefined method `access_api' for #<YAML::Object:0x24681b8>
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
我们正在构建一个用户生成的内容网站,我们希望用户可以在其中嵌入视频,幻灯片等内容......任何人都可以推荐一个普遍接受的标签/属性列表,以便在轨道清理中提供给我们相当不错的安全性,同时仍然允许大量的可嵌入内容/ HTML格式?
我尝试在表单中设置单表继承模型类型.所以我有一个属性选择菜单:类型,值是STI子类的名称.问题是错误日志保持打印:
警告:无法批量分配这些受保护的属性:类型
所以我在模型中添加了"attr_accessible:type":
class ContentItem < ActiveRecord::Base
# needed so we can set/update :type in mass
attr_accessible :position, :description, :type, :url, :youtube_id, :start_time, :end_time
validates_presence_of :position
belongs_to :chapter
has_many :user_content_items
end
Run Code Online (Sandbox Code Playgroud)
不改变任何东西,ContentItem仍然具有:在控制器中调用.update_attributes()之后的type = nil.知道如何从表单中大量更新:type?