Rails:如何将JS对象转换为数组参数
Rails: How to turn JS object to array params
我有这个JS对象:
obj={id:80,attr_name:"avatar",style:"small",upload_path:null}
然后,我用AJAX将这个对象作为params发布到控制器。我想在参数中看到的是这样的东西:
params[:attachment][:id] = 80
params[:attachment][:attr_name] = "avatar"
等等…
因此,在JS方面,我创建了一个包含附件参数的对象:
{attachment:obj}
当我得到params[:attachment]的结果它[对象对象]。
如何将JS对象转换为params[:attachment]中的数组?
谢谢,
一种方法是,而不是{attachment:obj},使其像这样:
postData = {
"attachment[id]": obj.id,
"attachment[attr_name]": obj.attr_name
}
另一种方法是将JS对象字符串化为JSON,并在另一端使用JSON.parse。
然而,当您将对象传递给"data"参数时,jQuery.ajax应该按原样发送它
假设您使用的是jQuery(这是Rails的默认设置),这将起作用:
<h1>TEST</h1>
<script type="text/javascript">
$(function() {
params = {};
params.attachment = {};
params.attachment.id = 80;
$.post( "/the_action", params, function(data) {
alert("response");
}, "json");
});
</script>
你可以在控制器中这样验证:
class MainController < ApplicationController
respond_to :html, :json
def index
end
def the_action
print params
puts params[:attachment][:id]
render nothing: true
end
end
这应该以您想要的格式打印数据。
相关文章:
- Javascript转换数组
- JSON.stringify不转换数组
- 使用underscore.js转换数组
- 对象转换数组
- 在 JavaScript 中的值列表中转换数组
- 转换数组并反转
- 用一个巨大的字符串“”转换数组;数字”;,用逗号分隔成一个数字数组(而不是字符串)
- 用javascript转换数组中的日期
- 如何转换数组字符串
- 转换数组中的输入值
- 如何在创建数组后转换数组中的var
- Json转换数组是一个字符串
- 在AngularJS中转换数组属性
- 在javascript中转换数组
- 动态转换数组为树状结构
- 使用Javascript和Underscore.js转换数组对象
- node.js中使用node-gyp的转换数组
- Nodejs -转换数组
- D3 js转换数组的矩形不工作
- 在Javascript中转换数组的数字到字符串