【问题标题】:Mount a "multi-level" JSON Object from a form in Rails从 Rails 中的表单挂载“多级”JSON 对象
【发布时间】:2016-01-13 10:44:11
【问题描述】:

我需要一些有关 Rails 项目的帮助。我需要安装一个具有这样结构的多级 JSON(比这个大很多):

{"totalAmount" => 0,
  "paymentInfo" => {
    "transactionType" => {
      "something" => 10
    }
  }
}

我正在尝试使用 form_tag 获取它,但我无法从中获取对象内部的对象。我怎样才能以正确的方式做到这一点?我将通过 HTTParty 将此 JSON 传递给 Rest 服务

到目前为止我的表格

<%= form_tag '/sendPayment',{method: :post} do %>
<div>
  <%= label_tag 'Total Amount' %>
  <%= text_field_tag 'totalAmount' %>
</div>
<div>
    <div>
  <%= label_tag 'Transaction Type' %>
  <%= text_field_tag 'paymentInfo[transactionType]' %>
</div>
<div>
  <%= label_tag 'something' %>
  <%= text_field_tag 'paymentInfo[transactionType][something]' %>
</div>
<div>
  <%= submit_tag 'Save' %>
</div>
<% end %>

我的控制器

require 'rubygems'
require 'httparty'
require 'json'
require 'digest'


class PaymentsController < ApplicationController
  def index
  end

  def sendPayment
   puts params

   @jsonParams = params.to_json
   puts @jsonParams
   @result = HTTParty.post('http://public-api-elb-1090807689.us-west-     2.elb.amazonaws.com/v1/sync/payments'.to_str,
  :body => @jsonParams.to_json,
  :headers => { 'Content-Type' => 'application/json' } )

puts @result
 end

end

【问题讨论】:

  • 发布你迄今为止尝试过的任何代码
  • 嗨,请再更新一个级别
  • 我更新了问题:)

标签: ruby-on-rails ruby json rest


【解决方案1】:

这样的?

<%= form_tag '/someroute',{method: :post, format: :json} do %>
  <%= number_field_tag 'totalAmount', '0',{class:'form-control',min:0} %>
  <%= select_tag 'paymentInfo[transactionType]', options_for_select(['Paypal','Bitcoin','CC'],'Paypal'),{class:'form-control'} %>
  <%= submit_tag 'Pay!' %>
<% end %>

【讨论】:

  • 只需要一个级别,但我不能使用两个级别,例如: 有没有办法做到这一点?
  • 改用&lt;%= text_field_tag 'paymentInfo[transactionType][something]' %&gt;(注意括号中的变化)。
  • 你确定吗?我刚刚试了一下,效果很好。 注意:我刚刚看到您更新的问题。考虑到您不能将paymentInfo[transactionType] 设置为文本字段,同时拥有paymentInfo[transactionType][something]。这不是一个有效的 JSON
猜你喜欢
  • 1970-01-01
  • 2010-11-01
  • 2017-06-05
  • 2016-05-12
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多