Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 根据attar_accessor设置的字段销毁嵌入的文档_Ruby On Rails_Ruby_Mongoid - Fatal编程技术网

Ruby on rails 根据attar_accessor设置的字段销毁嵌入的文档

Ruby on rails 根据attar_accessor设置的字段销毁嵌入的文档,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,我的rails应用程序中定义了以下类: class Letter embeds_many :dispatches def evaluate self.dispatches.destroy_all(marked: true) end end class Dispatch embedded_in :letter attr_accessor :marked end 在我的程序执行期间,一些调度将被标记,也就是说,我将把marked属性设置

我的rails应用程序中定义了以下类:

class Letter
    embeds_many :dispatches

    def evaluate
        self.dispatches.destroy_all(marked: true)
    end
end

class Dispatch
    embedded_in :letter

    attr_accessor :marked
end
在我的程序执行期间,一些调度将被标记,也就是说,我将把marked属性设置为true

当我在信件实例上调用evaluate方法时,我希望嵌入在这封信中的标记分派被销毁。但是什么也没发生


是否可以将attr\u accessor创建的属性传递给destroy\u all方法?

为什么要使用attr\u accessor:marked而不是field:marked?attr_访问器不会给您持久值。主要是因为我不需要将该值持久化到数据库。其中一些项目将被标记,并在从数据库中销毁后立即进行标记,所以我认为没有必要将此字段存储在数据库中。最后,我可能没有其他选择,但我真的很想知道是否有可能这样做,这是否是一个良好的做法与否。谢谢,很公平。你能在某处保留一份ID列表而不是标记它们吗?或者手动查看列表以找到标记的调度并以这种方式获取它们?感谢您的回复。我必须同意,这两个方案都是可行的,而且可以在没有实质困难的情况下实施。我想这是不可能的。