1

我正在尝试将嵌套的 JSON 从 Rails 传输到 JavaScript。到目前为止,我成功传输了以下 JSON:

[
  "name" : "task-1",
  "relationships" : [
    {"follower": {"name" : "task-2"}},
    {"follower": {"name" : "task-3"}}
]

我想将此 JSON 格式化为如下所示:

[
  "name" : "task-1",
  "relationships" : [
    {"name" : "task-2"},
    {"name" : "task-3"}
]

这是我生成 JSON 的方式:

@tasks.to_json(
  :include => { :relationships => {
                  :include => :follower,
                  :only => :follower
               } })

我可以在我的 to_json 函数中指定某种选项来摆脱“跟随者”键名吗?

4

2 回答 2

0

我最终使用不同的查询来解决问题:

@tasks = Task.to_json(:include => :followed_tasks)

模型中followed_tasks定义的位置Task

has_many :relationships, foreign_key: "follower_id", dependent: :destroy
has_many :followed_tasks, through: :relationships, source: :followed

这给了我格式很好的 JSON:

[
  "name" : "task-1",
  "followed_tasks" : [
    { "name" : "task-2" },
    { "name" : "task-3" }
]
于 2012-05-10T16:47:43.583 回答
0

原来有。选项是:

ActiveRecord::Base.include_root_in_json = false

您应该可以将其放入 config/environment.rb 中,然后一切顺利。

于 2012-04-14T21:06:40.423 回答