【问题标题】:Structure json inside controller控制器内部的结构json
【发布时间】:2016-04-27 20:02:05
【问题描述】:

我需要做一个这样的 json 结构,但有超过 1 个项目:

charge = {
   items: [{
    name: "Product A",
    value: 1000,
    amount: 2
    }]
}

我有一个@items,即@items.pluck(:name, :price) 我正在尝试像这样创建我的 json:

  charge = {
   items: [{
    @items.each do |item|
     'name:' = item.name,
     'value:' = item.price,
     'amount:' = 2
    end
    }]
}

并返回此错误:

SyntaxError in CoursesController#qualquer

syntax error, unexpected '=', expecting keyword_end
'name:' = item.name,

我是怎么做这个结构的?

【问题讨论】:

    标签: ruby-on-rails ruby json ruby-on-rails-4


    【解决方案1】:

    我认为有两件事是错误的。首先,您使用“=”运算符来设置 Ruby 哈希值。这是不正确的,因为 Ruby 哈希使用符号或字符串。所以你的哈希值需要看起来像这样:

    { "may_hash_key" => my.has_value }
    

    { my_hash_key: my.hash_value }
    

    { :may_hash_key => my.has_value }
    

    任君挑选。

    此外,如果您从控制器操作中渲染 JSON,您可以执行以下操作:

    def index
      # presumably some setup code
      charge = {
        items: @items.map do |item| {
          name:   item.name,
          value:  item.price,
          amount: 2
        } end
      }
      render json: charge
    end
    

    如果您不从控制器操作中呈现 JSON,您可以做的是设置 @charge 并在您的视图中将其作为 Ruby 哈希进行交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      相关资源
      最近更新 更多