1
が含まだから我々は(多くの多くを介して)、そのような場合があります。Railsの5リターンのすべてのレコードと必要な関連
class Company < ActiveRecord::Base
has_many :contracts
has_many :subscribers, through: :contracts
end
class Contract < ActiveRecord::Base
belongs_to :company
belongs_to :subscriber
end
class Subscriber < ActiveRecord::Base
has_many :contracts
has_many :companies, through: :contracts
end
のため
詳細SUBSCRIBER_IDにより、すべての企業との契約を返すためにお役立てください例=>
私たちは、だから今私たちに必要な関連
を持つ企業を取得することができますをSUBSCRIBER_IDています10社の
Company.includes(:contracts).where(contracts: {subscriber_id: params[:id]})
しかし、そのリターン企業のみ必要な関連を持つが、我々はすべての企業 )社の企業の各インスタンスを返し、すべての企業
期待される結果
1)を返す必要があります[0]。契約は協会加入者とのみ契約を返すか、空の配列を返すべきである
このようにjsonを構築し、契約条件がブロックされている場合は除外する:
json.data do
json.companies @companies do |company|
json.id company.id
json.name company.name
json.full_name company.full_name
json.owner company.owner, :name, :email, :phones
json.contracts company.contracts do |contract| # => should return contract by subscriber_id or empty array
json.id contract.id
json.company_id, contract.company_id
json.status contract.status
end
end
end
のようなものを試してみてください。これは可能ですか? –
このリクエストは、現在の加入者と契約している会社のみを返します。 1)会社が現在の契約者と契約している場合は、この会社を返却し、company.contractsは現在の契約者との契約のみを返します。 2)会社は現在の契約と契約していない私たちはこの会社も返しますが、company.contractsは空の文字列を返すべきです –