首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails/jQuery中使用gon包含关联的对象

如何在Rails/jQuery中使用gon包含关联的对象
EN

Stack Overflow用户
提问于 2012-03-30 01:49:45
回答 2查看 1.2K关注 0票数 1

我有一个笔记,它有一定数量的属性。它也有相关的标签。我一直在使用gon使这个变量对页面的javascript文件可用(使@note.attributes对此页面可用)。

我可以很容易地输出note属性,例如,如果我实例化:

代码语言:javascript
复制
 gon.note = @note.attributes

我可以输出它的内容:

代码语言:javascript
复制
 alert(gon.note.content)

但是,这并不能将注释的标签放入..例如,我不能这样做:

代码语言:javascript
复制
 alert(gon.note.tags)

如果我想要显示一个注释的标记,但又想用gon.note实现它们,而不是创建一个完整的其他变量gon.tags,该怎么办呢?我该如何做到这一点(也许是某种连接或包含)?我之所以这样做,是因为它更适合于,比方说,如果你有多个笔记显示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-30 02:24:35

如果您的@note.tags是一个has_many关联(不是一个简单的数组),那么gon不知道如何序列化Tag实例的数组。

除了引入另一个变量外,您什么也做不了:

代码语言:javascript
复制
# controller
gon.note_tags = @note.tags.map &:attributes

# JS
var first_tag_name = gon.note_tags[0].name;

如果你需要序列化太多的AR对象,你可能想要使用Rabl,因为gon支持Rabl。

票数 0
EN

Stack Overflow用户

发布于 2012-09-11 06:56:56

Rails有一个有用的as_json方法,可以让您指定关联、要包括的字段,甚至要包括的方法。它返回单个对象的ruby散列或集合的数组,当gon对其调用to_json时,它将被很好地序列化。

代码语言:javascript
复制
gon.note = @note.as_json(:include => [:tags]))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9930684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档