Ruby on rails 在Rails 3中为同一API调用中的多个项提供服务
我正在Rails3中开发一个API,我遇到了以下问题。用户获得了电话、电子邮件、地址、网站和职业等多种资源 我想在API中构建一个资源,在同一个调用中获取所有用户项。这可能吗?如何做到这一点Ruby on rails 在Rails 3中为同一API调用中的多个项提供服务,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在Rails3中开发一个API,我遇到了以下问题。用户获得了电话、电子邮件、地址、网站和职业等多种资源 我想在API中构建一个资源,在同一个调用中获取所有用户项。这可能吗?如何做到这一点 @user = User.find(params[:id]) @phones = @user.phones.where(:privacy => nil) @emails = @user.emails.where(:privacy => nil) @website
@user = User.find(params[:id])
@phones = @user.phones.where(:privacy => nil)
@emails = @user.emails.where(:privacy => nil)
@websites = @user.websites.where(:privacy => nil)
@addresses = @user.addresses.where(:privacy => nil)
@occupations = @user.occupations.where(:privacy => nil)
respond_to do |format|
format.html { render :text => 'Use either JSON or XML' }
format.json { render :json => {@phones,@emails}, :only => [:firstname, :lastname, :nickname, :email, :bio] }
format.xml { render :xml => @phones, :only => [:firstname, :lastname, :nickname, :email, :bio] }
end
我更希望有一个没有活动记录的单独的modelobject将这些数据作为单个类保存 例: 然后,我将把所有数据提供给上述用户模型,并将其作为服务公开。正如我所看到的,这样你就可以更好地控制细节。我的意思是,对于API,您可以有一个单独的对象层,并通过控制器公开它们 通过这种方式,当您想要更改API数据时,您只需要担心您的API对象。同样的事情也适用于或模型 干杯
sameera您最好构建自己的json或xml作为输出
respond_to do |format|
format.html # index.html.erb
format.xml # index.xml.builder
format.json render :partial => "show.json"
end
好的,听起来很有趣,我会研究这个。但这不可能是我尝试的方式吗?如何修改代码以在一次调用中提供所有结果?
respond_to do |format|
format.html # index.html.erb
format.xml # index.xml.builder
format.json render :partial => "show.json"
end