2011-03-16 53 views
1

我试图将我的application.js文件中动态创建的元素保存到数据库。代码看起来像这样吗?:

$.ajax({ 
    type: "POST", 
    data: { title: 'oembed.title', thumbnail_url: 'oembed.thumbnail_url'} 
}); 

有什么我失踪了吗?假定oembed.titleoembed.thubnail_url包含我想要保存的值,并且titlethumbnail是数据库列。

+0

这是铁轨吗?请更具体和重新标记。如果是导轨,请详细说明您的型号+控制器。 – 2011-03-16 00:22:29

+0

是的,它的轨道 – 2011-03-16 00:23:33

+0

你真的需要知道我的模型和控制器吗? – 2011-03-16 00:24:35

回答

0

我看到的第一个问题是你的数据是字符串。摆脱“引述

$.ajax({ 
    type: "POST", 
    data: { title: oembed.title, thumbnail_url: oembed.thumbnail_url} 
}); 
+0

我需要'url:'设置吗?那应该是什么? – 2011-03-16 00:47:44

+0

是的。这必须指向您在服务器上的服务。您是否熟悉异步客户端调用的概念? – Slappy 2011-03-16 04:21:26

+0

理论上,我理解它是一种在没有页面重新加载的情况下从服务器检索数据的方式,但实际上我很难实现这些功能。服务器上的服务是什么意思? – 2011-03-16 04:32:25

0

我会假设你需要一些用户提供的数据合并到新的数据库对象 - 否则,这将是比较容易的方式只是从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的属性...

+0

嗯这是我的具体情况:我接受的只是来自用户的视频网址,并将该网址添加为视图的链接。然后,我使用嵌入式API来查找该链接,并将其转换为嵌入式视频,缩略图和标题。我也想让用户编辑标题,所以我需要保存它。我喜欢你的第一个选项,但我不确定哪个'url'可以通过。此外,我假设我想保存的所有内容都不是视频网址应该是隐藏字段,但我不确定。此外,找到链接并将它们转换为视频需要很长时间才能嵌入,因此我可能希望以不同的方式进行操作。 – 2011-03-16 01:31:53

+0

如果我在表单上使用'.serialize()',表单如何知道jQuery动态生成值的隐藏字段的值? – 2011-03-16 01:41:00

+0

@Justin - AJAX调用中的'url:'选项只是您的应用中创建操作的URL;视频网址将来自用户在表单中的输入内容。你可以有他们的另一个文本输入来覆盖默认标题(标记为可选?)。隐藏的字段将用于存储服务器在加载页面时生成的信息 - 我想不出会是什么,但我提到它以防万一... – 2011-03-16 02:24:01

相关问题