に2つのテーブルからすべてを選択し、私は次のようにありますルビー - 私でcompanies_controllerでは、コントローラ
になりdef show
@company = Company.find(params[:id],
:conditions => ['companies.id = addresses.company_id'],
:joins => [:address])
respond_with(@company) do |format|
format.xml { render :xml => @company}
end
end
:サーバーコンソールで
SELECT "companies".* FROM "companies" INNER JOIN "addresses" ON "addresses"."company_id" = "companies"."id" WHERE "companies"."id" = ? AND (companies.id = addresses.company_id) LIMIT 1
。
私はSELECT *を取得しようとしています。そのため、両方の列をすべての表から取得します。私がこれをやろうとしているのは、すべてのデータを返すために企業/ 1.xmlのカールが必要なためです。たぶん、私は会社と住所の両方のモデルのための新しいコントローラを作成する必要がありますか?あなたはこのような:include
を使用することができるはずです
おかげで、 クリス
は、あなたの 'Company'モデルがすでにアドレスを持つ' has_one'または 'has_many'を指定しませんか? 'Address'に対応する' belongs_to'がある場合、デフォルトでeager-loadedになります。フレームワークがすでにあなたのためにしている仕事をしています。 –
詳細については、[Rails Associations Guide](http://guides.rubyonrails.org/association_basics.html)を参照してください。 –
Dave、はい - 会社のモデルhas_one:住所と住所モデルbelongs_to:company。私は、companies/show.html.erbページのアドレス欄を表示することができます。この問題は、端末からcurl http:// localhost:3000/companies/1.xmlを実行したときに発生します。企業テーブルからのノードのみを返します。 – h8windows