我试图弄清楚如何在我的模型中使用自定义方法查询我的数据库。据我所知,这是不可能的,所以我正在寻找其他想法。
挑战在于我需要找到至少有一个关系条件为真的模型的所有记录。例如,假设我有一个Notebook
记录,我需要找到至少修改过其中一个相关对象的Notebook
个实例。我们假设Notebook
有front_cover
,back_cover
,interior_pages
和interior_folders
。在我的Notebook
模型类中,我有这种方法:
class Notebook < ActiveRecord::Base
has_one :front_cover
has_one :back_cover
has_many :interior_pages
has_many :interior_folders
...
def modified?
if !front_cover.modified? or !back_cover.modified? or !interior_pages.empty? or !interior_folders.empty?
return true
end
false
end
...
end
front_cover
和back_cover
中修改后的方法可能会有自己的关系,也会检查:
class FrontCover < ActiveRecord::Base
has_one :cover_graphic
has_many :ring_holes
belongs_to :notebook
...
def modified?
modified = false
if (!cover_graphic.nil? and !cover_graphic.url.nil?) or !ring_holes.empty?
modified = true
end
modified
end
end
我真的不确定如何构建这样的条件检查作为查询。有什么想法吗?