Hom*_*ith 43 json ruby-on-rails
现在我有这条线:
render json: @programs, :except => [:created_at, :updated_at]
Run Code Online (Sandbox Code Playgroud)
但是,由于程序属于公司,我希望显示公司名称而不是公司ID.
如何在渲染程序时包含公司名称?
Nob*_*ita 72
这样的事情应该有效:
render :json => @programs, :include => {:insurer => {:only => :name}}, :except => [:created_at, :updated_at]
Run Code Online (Sandbox Code Playgroud)
Sea*_*lls 15
我从控制器方法渲染包含json的json时得到了相同的"无法克隆符号文件"错误.像这样避免它:
render :json => @list.to_json( :include => [:tasks] )
Run Code Online (Sandbox Code Playgroud)
考虑使用jbuilder以可维护的方式包含嵌套模型:
# /views/shops/index.json.jbuilder
json.shops @shops do |shop|
# shop attributes to json
json.id shop.id
json.address shop.address
# Nested products
json.products shop.products do |product|
json.name product.name
json.price product.price
end
end
Run Code Online (Sandbox Code Playgroud)
您也可以在模型级别执行此操作.
program.rb
def as_json(options={})
super(:except => [:created_at, :updated_at]
:include => {
:company => {:only => [:name]}
}
)
end
end
Run Code Online (Sandbox Code Playgroud)
现在在您的控制器中:
render json: @programs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32896 次 |
| 最近记录: |