Ruby on rails RubyonRails-从controller中的两个表中选择所有内容
在我的公司\ U控制器中,我有以下内容:Ruby on rails RubyonRails-从controller中的两个表中选择所有内容,ruby-on-rails,controller,Ruby On Rails,Controller,在我的公司\ U控制器中,我有以下内容: 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
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*,因此我从两个表中获取所有列。我之所以尝试这样做,是因为我需要对companys/1.xml进行curl以返回所有数据。也许我需要为公司和地址模型创建一个新控制器
谢谢,
Chris您应该能够使用
:包括以下内容:
render :xml => @company.to_xml :include => [:address]
您的公司
模型是否已经指定了一个带有地址的有一个
或有多个
?如果地址
有一个对应的所属的地址,默认情况下将立即加载该地址。你正在做框架已经为你做的工作。查看以获取更多信息。Dave,是的-公司模型有一个:地址,地址模型属于一个:公司。我可以在companys/show.html.erb页面的上显示地址字段。当我从终端运行curl时,问题就出现了。Dave,我运行的是rails 3.1.1,所以我使用了format.xml{render:xml=>@company,:include=>[:address]},它可以工作!感谢您提供协会指南的链接。我有很多书要读。非常感谢。@h8windows很酷,是的,不确定要针对哪个版本。记住要接受答案,这样未来的访问者就可以从视觉上了解到哪些是有用的。我建议旋转通过所有导轨;这些都是肤浅的,但却是很好的出发点。