1

我目前正在为微博发布实现一项功能,用户可以在其中链接到网站、视频、图像等,并在提交实际微博之前向他们预览信息。

我正在使用:

Ruby 开放图形协议 gem:

https://github.com/intridea/opengraph

开放图协议:

http://ogp.me

我已经对其进行了测试,它非常易于使用并且可以按预期工作:

控制器:

  require 'opengraph'

  def new
    @movie = OpenGraph.fetch('http://www.youtube.com/watch?v=6ifSudReeuM')
  end

看法:

<iframe src="<%= @movie.video %>"></iframe>

这将按预期显示视频。好的,我需要在不手动提供控制器中的视频 URL 的情况下执行此操作,但允许我的用户这样做,但在提交微帖子表单之前。

微博表单中有一个文本字段用于粘贴链接。

在我的微帖子表单中粘贴链接或单击 div 按钮时,我想将 url 传递给控制器​​并作为参数传递给 OpenGraph.fetch()。

我想在不提交我的 micropost 表单的情况下执行此操作,这意味着不单击表单的主提交按钮。我意识到我可以编写一些 JQuery 来检测文本字段何时粘贴了文本,然后获取文本字段的值,即 URL。

问题:

我的问题是如何模拟我对当前控制器所做的事情。基本上我如何手动提供链接作为 OpenGraph.fetch() 的参数,但使用用户在文本字段中粘贴/键入的 URL。

我只想让我的用户看到他们粘贴的内容的预览,例如视频屏幕和我可以从对象中抓取的视频描述,但在他们提交微博之前。

  1. 用户粘贴链接
  2. 我使用开放图形协议 gem 获取信息
  3. 显示它而不刷新页面

然后用户可以在微博表单的文本区域中输入他们的微博内容,或者直接提交。

所有数据都发送到数据库。例如,微博内容和视频的 URL。

我似乎无法找到实现这一点的方法。我会很感激一些帮助谢谢。

亲切的问候

4

1 回答 1

1

设置一个单独的控制器操作,它只为传递的 url 参数获取 ogp 数据,然后在 url 输入的前端设置一个 onpaste 事件以触发该操作的 ajax 请求,并传回数据。当 ajax 请求收到响应时,它可以按预期填充预览。

于 2012-05-13T20:35:39.110 回答