我正在尝试将application.js文件中动态创建的元素保存到数据库中。代码看起来像这样吗?:
$.ajax({
type: "POST",
data: { title: 'oembed.title', thumbnail_url: 'oembed.thumbnail_url'}
});
有什么我想念的吗?假设oembed.title
和oembed.thubnail_url
包含我要保存的值,title
和thumbnail
是数据库列。
答案 0 :(得分:0)
我看到的第一个问题是你的数据是字符串。摆脱'引用
$.ajax({
type: "POST",
data: { title: oembed.title, thumbnail_url: oembed.thumbnail_url}
});
答案 1 :(得分:0)
我将假设您需要将一些用户提供的数据合并到新的DB对象中 - 否则,从Rails创建它会更容易。
如果您正在使用完全用户提供的数据,则可以使用serialize()
方法(对服务器生成的内容使用隐藏字段):
jQuery.ajax({
url: '/path/to/whatever',
data: $('#MyForm').serialize(),
type: 'POST'
});
或者您可以使用jQuery Form Plugin - 它可以让您轻松地将用户提供的数据与服务器生成的数据相结合。例如:
$('#MyForm').ajaxForm({
//Hardcoded/server-generated stuff goes in here
//(and will be added to the data from the form inputs):
data: {title: oembed.title},
type: 'POST'
});
ajaxForm()
函数将设置表单及其默认值,并在用户点击提交按钮时发送AJAX调用(另请参阅:ajaxSubmit()
)。
在Rails方面,一切都应该与用户正常提交表单完全相同(尽管您可能只想回复状态代码/消息 - 没有调用重定向或页面呈现)。
希望这有帮助!
PS:在您的示例中,您似乎可以在AJAX调用中使用data: oembed
。这将提交所有 oembed的属性......