将其转换为Ruby 1.9哈希

时间:2012-02-18 05:03:57

标签: ruby-on-rails ruby

我在旧语法中有以下内容:

render json: [@note.to_json(:include => { :contact => { :except => [:created_at, :updated_at]}}, only: :body)], status: :created, location: [@contact, @note]

我将如何在新的1.9哈希语法中执行此操作?我尝试了很多不同的方法,但似乎无法理解语法。另外,我觉得它很混乱。

编辑:实际上已经意识到我已经将它与json:call混合在了一起。呸!讨厌两到两个。

2 个答案:

答案 0 :(得分:3)

我不确定问题出在哪里,但它很简单地转换为:

render json: [@note.to_json(include: { contact: { except: [:created_at, :updated_at]}}, only: :body)], status: :created, location: [@contact, @note]

顺便说一句,在一行上将如此多的嵌套结构串在一起肯定会让人感到困惑。将其分解,使其可读(和可写)。

答案 1 :(得分:0)

你的例子很好用。只需要更换几个键

require 'pp'
pp json: [
    {
      include: { 
        contact: { 
          except: [:created_at, :updated_at]
        }
      },
      only: :body
    }
  ], 
  status: :created, 
  location: %w[contact note]

所以,除了一些微小的变化来绕过我无法访问的对象(@contact和@note),我改变的只有

:include => { :contact => { :except =>

include: { contact: { except:

此外,您可能会考虑使用rabl来处理此类事情。