2011-10-29 9 views
0

に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を使用することができるはずです

おかげで、 クリス

+1

は、あなたの 'Company'モデルがすでにアドレスを持つ' has_one'または 'has_many'を指定しませんか? 'Address'に対応する' belongs_to'がある場合、デフォルトでeager-loadedになります。フレームワークがすでにあなたのためにしている仕事をしています。 –

+0

詳細については、[Rails Associations Guide](http://guides.rubyonrails.org/association_basics.html)を参照してください。 –

+0

Dave、はい - 会社のモデルhas_one:住所と住所モデルbelongs_to:company。私は、companies/show.html.erbページのアドレス欄を表示することができます。この問題は、端末からcurl http:// localhost:3000/companies/1.xmlを実行したときに発生します。企業テーブルからのノードのみを返します。 – h8windows

答えて

0

render :xml => @company.to_xml :include => [:address] 
+0

Dave、私はレール3.1.1を走らせていますので、format.xml {render:xml => @company、:include => [:address]}を使いました。 Associations Guideへのリンクありがとうございます。私は読むべきことがたくさんある。どうもありがとうございました。 – h8windows

+0

@ h8windowsクール、ええ、対象となるバージョンがわからない。将来の訪問者が何が助けられたかを視覚的に表示できるように、回答を受け入れることを忘れないですべてのRailsガイドを回転させることをお勧めします。彼らは表面的ですが、大きな出発点です。 –

関連する問題