轨道3:检索所有子记录,其中父模型属性等于搜索键(Rails 3: Retrieve all chi

2019-07-31 15:07发布

我想这样做,只返回没有在工作单支等于数字的序列号资产查询。

class Workorder < ActiveRecord::Base
    belongs_to :user
    has_many :assets

    scope :current_branch, where("branch=350").order("wo_date ASC")
end

class Asset < ActiveRecord::Base
    belongs_to :workorder

    scope :needs_serial, :conditions =>  {:serial => ""}
end

class AssetsController < ApplicationController
    def index
        @assets_needing_serial=???
    end
end

所以,我想的哈希:资产在assets.workorder.branch =“350”。 我想我可以做一个循环,并创建哈希这种方式,但我应该能够做到这一点在查询? 我应该尝试使用范围为这个?

**更新

这是我最终使用。 伟大的工作。

@assets = Asset.joins(:workorder).where('workorders.branch=350').order('workorders.wo_date ASC')

Answer 1:

你会想要做的查询

Asset.joins(:workorder).where('workorders.branch = 325')

所以,你可以做这样一个范围:

scope :with_workorder_branch, lambda { |branch| joins(:workorder).where('workorders.branch = ?', branch) }

如果你要通过工作订单进行循环,你应该改变连接来包括,因为这渴望加载它们。

导轨导向的查询是这样的事情非常有帮助http://guides.rubyonrails.org/active_record_querying.html



文章来源: Rails 3: Retrieve all child records where parent model attribute equals search key