1

その特定の関連性を持つ結果のみを表示する where ステートメントを実行しようとしています。

例えば:

会社には、会社のステータスを通じて多くのステータスがあります。ゴールド、シルバー、ブロンズの複数のステータスを持つことも、まったくステータスを持たないこともできます。結果がステータス (ゴールド、シルバー、および/またはブロンズ) を持つ企業のみを返し、ステータスを持たない企業は返されないようにしようとしています。

4

4 に答える 4

0

あなたのユースケースはあまり明確ではありませんが、あなたが望んでいるのは、指定されたものと一致するステータスを持つ会社を見つけることだと思います:

Company.includes(:statuses).where('status.name = ?', params[:status_name])

Company を仮定すると、正しいクエリが得られるはずですhas_many :statuses

于 2011-08-14T19:59:53.283 に答える
0

Active Record Associations に関する Ruby on Rails ガイドから:

4.2.3 How To Know Whether There’s an Associated Object?

関連するオブジェクトがあるかどうかを知るには、association.nil? を確認します。

@supplier.account.nilの場合?

@msg = "このサプライヤーのアカウントが見つかりません"

終わり

http://guides.rubyonrails.org/association_basics.html#detailed-association-reference

于 2011-08-14T20:03:46.130 に答える
0
Company.joins(:statuses).select("DISTINCT(companies.id), companies.*, statuses.*")
于 2011-08-14T20:37:34.793 に答える