我正在做我的第一个Rails项目,我一直想让我的两个模型一起工作。这是我的模型:
class Ecn < ActiveRecord::Base has_many :revisions, :dependent => :destroy has_many :drawings, through: :revisions accepts_nested_attributes_for :revisions, :reject_if => lambda { |attrs| attrs.all? { |key, value| value.blank? }}, :allow_destroy => true belongs_to :user class Drawing < ActiveRecord::Base has_many :revisions class Revision < ActiveRecord::Base belongs_to :drawing, foreign_key: :drawing_number belongs_to :ecn
我想要实现的是搜索使用修订版foreign_key:drawing_number的Ecns。创建Ecn时,我向Ecn添加了多个修订,其中包含:drawing_number的字段,该字段是Drawings的属性。我有一个Ecn搜索表单,其中有多个要搜索的字段,其中一个是:drawing_number。我希望查询查找包含给定的:drawing_number的所有修订,并找到包含这些修订的Ecn。
我的Ecn模型中的范围如下所示:
scope :by_drawing_number, lambda { |drawing_number| Ecn.joins(:drawings).where("drawings.drawing_number LIKE ?", "%#{drawing_number}%") unless drawing_number.nil? }
此范围不会引发任何错误,但搜索结果为零。