作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Controller 的索引操作中,我返回了一个应该呈现为 JSON 的图片模型数组。
def index
@pictures = Pictures.all
respond_to do |format|
format.json { render json: @pictures.to_json( include: [:imageable] ) }
end
end
此模型配置了多态关联。
class Picture < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end
class Employee < ActiveRecord::Base
has_many :pictures, :as => :imageable
attr_accessible :name
end
class Product < ActiveRecord::Base
has_many :pictures, :as => :imageable
attr_accessible :type
end
图片数组将包含与员工和产品具有可成像关联的图片对象。如何将可成像关联对象以不同方式呈现为 json,包括 Employeee 和 Product 特定字段?
谢谢你,阿萨夫
最佳答案
我建议你使用类似 JBuilder 的东西构建您的 json 响应。
然后,您使用构建 json 的逻辑创建一个名为 index.json.jbuilder 的模板文件。
您将能够根据您的对象轻松构建您的 json。
例如:
json.array! @pictures do |picture|
json.picture_attribute1 = picture.picture_attribute1
json.picture_attribute2 = picture.picture_attribute2
if picture.imageable.is_a?(Employee)
json.employee_name = picture.imageable.name
else
json.product_name = picture.imageable.name
end
end
请查看 JBuilder 的文档以了解如何使用它。
关于ruby-on-rails - 将 rails 多态关联对象呈现为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296111/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!