Ruby on rails 使用响应中包含的任何对象的URL添加json属性
我在一个API中工作(不使用任何gem),我希望有好的响应 就是Ruby on rails 使用响应中包含的任何对象的URL添加json属性,ruby-on-rails,json,api,routes,dry,Ruby On Rails,Json,Api,Routes,Dry,我在一个API中工作(不使用任何gem),我希望有好的响应 就是 如果Api使用者要求提供对象列表:Api将以仅显示两个字段的对象列表作出响应,并添加一个url为的字段,该url将访问此特定对象的所有字段 如果API使用者请求特定对象,它将使用所有字段进行响应 为此,我有一个如下控制器: module Api module V1 class QuotesController < ApplicationController respond_to :json
- 如果Api使用者要求提供对象列表:Api将以仅显示两个字段的对象列表作出响应,并添加一个url为的字段,该url将访问此特定对象的所有字段
- 如果API使用者请求特定对象,它将使用所有字段进行响应
module Api
module V1
class QuotesController < ApplicationController
respond_to :json
def index
@quotes = Quote.all
respond_with @quotes
end
def show
@quote = Quote.find(params[:id])
respond_with @quote
end
end
end
end
# app/views/quotes/index.json.jbuilder
json.quotes @quotes do |quote|
json.id quote.id
json.name quote.name
json.amount quote.amount
json.url quote_url(quote)
end
# app/views/quotes/show.json.jbuilder
json.quote do
json.id @quote.id
json.name @quote.name
json.amount @quote.amount
json.url quote_url(@quote)
end
模块Api
模块V1
类QuotesController<应用程序控制器
回复:json
def索引
@quotes=Quote.all
用@quotes回复你
结束
def秀
@quote=quote.find(参数[:id])
用@quote回复你
结束
结束
结束
结束
这就是模型:
class Quote < ActiveRecord::Base
attr_accessible :author, :text
end
class Quote
如何在Quote.all响应中添加任何Quote的URL或路径
是否可以在包含该对象的任何json响应中包含该URL?我的意思是,如果是干的当然,您必须自定义JSON响应 我建议您用一些jbuilder模板替换
response\u,如下所示:
module Api
module V1
class QuotesController < ApplicationController
respond_to :json
def index
@quotes = Quote.all
respond_with @quotes
end
def show
@quote = Quote.find(params[:id])
respond_with @quote
end
end
end
end
# app/views/quotes/index.json.jbuilder
json.quotes @quotes do |quote|
json.id quote.id
json.name quote.name
json.amount quote.amount
json.url quote_url(quote)
end
# app/views/quotes/show.json.jbuilder
json.quote do
json.id @quote.id
json.name @quote.name
json.amount @quote.amount
json.url quote_url(@quote)
end