我正在開發我的第一個rails項目,我試圖讓我的兩個模型一起工作。這裏是我的模型: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,並找到包含這些修訂的Ecns。
我在ECN模型範圍如下:
scope :by_drawing_number, lambda { |drawing_number| Ecn.joins(:drawings).where("drawings.drawing_number LIKE ?", "%#{drawing_number}%") unless drawing_number.nil? }
此範圍不拋出任何錯誤,但是搜索出現零個結果。
你可以發佈什麼查詢正在執行? –
'修正加載(0.4ms)SELECT「修訂版本」* FROM「修訂」WHERE(drawing_number LIKE'%A9999%') Ecn加載(0.4ms)SELECT「ecns」。* FROM「ecns」WHERE「ecns」。 「id」= 16 LIMIT 1 Ecn Load(0.3ms)SELECT「ecns」。* FROM「ecns」WHERE「ecns」。「id」= 23 LIMIT 1 Ecn Load(0.4ms)SELECT「ecns」。FROM 「ecns」WHERE「ecns」。「ecn_number」= 0' – sabrams
此查詢是使用mattherick在下面發佈的範圍生成的。 – sabrams