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() に渡します。

マイクロポストフォームを送信せずに、つまりフォームのメインの送信ボタンをクリックせずにこれを行いたいです。テキストフィールドにテキストが貼り付けられたことを検出するための 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 に答える