所以我做了这个ajax调用:
$.ajax({
type: "POST",
url: "/videos",
data: { title: oembed.title }
});
在此函数内调用Embedly API:
$('a.oembed').embedly({maxWidth:300,'method':'replace'}).bind('embedly-oembed', function(e, oembed){
});
现在这个$ .ajax()调用的工作方式有两个问题。首先,它每次加载index
视图时都在调用,这是有道理的,因为那是我指向网址的地方。但是,我希望在创建视频时只调用一次,而我不知道如何将其指向create
方法。
其次,ajax调用只是向数据库添加一个空行,标题是由嵌入式API动态生成并存储在oembed
哈希中(选择器在我的视图中查找视频链接)并将其转换为嵌入式视频,并将所有视频的属性存储在oembed
)中,而不是插入到我的数据库中。我正在尝试将这个动态生成的标题存储到我的数据库中。
我如何实现这两个目标?
更新:如果您感到好奇并希望看到这一点,请在此处分叉代码:https://github.com/meltzerj/Dreamstill
更新2:这是控制台所说的内容。请注意,一个用于create
,另一个用于show
:
于2011年3月16日星期三03:03:12 -0700 2011年开始发布“/ videos”for 127.0.0.1 由VideosController处理#create as 参数:{“title”=>“独家:Charlie Sheen说他'不是双极而是'双赢'(02.28.11)”} AREL(0.4ms)INSERT INTO“videos”(“description”,“thumbnail_url”,“release”,“video_url”,“user_id”,“title”,“embed_code”,“created_at”,“updated_at”)VALUES(NULL ,NULL,NULL,NULL,NULL,NULL,NULL,'2011-03-16 10:03:12.277518','2011-03-16 10:03:12.277518') 重定向到http://localhost:3000/videos/413 完成302发现在17ms
于3月16日星期三03:03:03 -0700开始获取“/ videos / 396”为127.0.0.1 由VideosController处理#show as 参数:{“id”=>“396”} 视频加载(0.2ms)选择“视频”。* FROM“视频”WHERE“视频”。“id”= 396 LIMIT 1 渲染视频/ _show_video.html.erb(6.4ms) 在布局/应用程序中呈现视频/ show.html.erb(9.8ms) 在33ms内完成200 OK(浏览次数:24.5ms | ActiveRecord:0.2ms)
答案 0 :(得分:1)
我分叉你的代码并运行它。我没有遇到您描述的路由问题,但我正在运行Rails 3.0.0。我不知道这是否有所作为。
无论如何,您的application.js
文件的运行方式与其编码方式完全相同。基本上发生的事情是:
在索引页面上,每个视频链接的格式为<a href="some_video" class="oembed">some text</a>
application.js中的Javascript正试图将所有oembed
分类链接转换为嵌入视频。这样做,一旦它成功,它就会运行AJAX POST,这真的不是你想要的。
我建议的是:
#dialog
中,(我相信模态部分),将表单更改为远程表单。 create.js.erb
并添加一些使用Embedly API的JS,以根据URL获取视频的标题。当前使用的方法 - 绑定embedly-oembed
方法可能不是最好的方法。 API可能具有获取标题的特定方式,而无需将超链接转换为嵌入。application.js
的{{1}}事件绑定中删除AJAX调用,因为每次将链接转换为嵌入时都不想创建某些内容。embedly-oembed
在模态partial中生成一个链接,然后使用现有方法和AJAX调用(仅对此窗口调用),它通过PUT执行UPDATE(不是通过POST创建)来更新它刚刚添加到数据库中的视频标题。希望这有帮助!
答案 1 :(得分:0)
如果您正在使用资源,那么您的新通话应该是GET:视频。检查你的佣金路线。
对于数据,它应采用以下形式:
Parameters: {"video"=>{"title"=>"Exclusive: Charlie Sheen Says He's 'Not Bipolar but 'Bi-Winning' (02.28.11)"}}
不是
Parameters: {"title"=>"Exclusive: Charlie Sheen Says He's 'Not Bipolar but 'Bi-Winning' (02.28.11)"}
基本上,数据应如下所示:
data: { video: {title: oembed.title} }