実装したいこと

  1. 記事投稿アプリで、YoutubeやTwitterを記事に埋め込みたい。
  2. URLを入力したら、埋め込み用に変換して、記事に反映させたい。

データの流れ

  1. ユーザーがYoutubeかTwitterを選択し、入力フォームにURLを入力する。
  2. ユーザーの入力した値を受け取り、保存する。
  3. ユーザーが入力した値を記事に埋め込める形式に変換する。
  4. Viewに反映される。

実装の流れ

  1. ユーザーの入力値を受け取るカラムを用意する。
  2. 入力フォームを用意する。
  3. 埋め込みに対応してくれるhtmlを返すviewを用意する。
  4. 受け取ったURLを変換するメソッドを準備する。

カラム準備

models/embed.rb (訳:埋め込み)

class Embed < ApplicationRecord

  enum embed_type: { youtube: 0, twitter: 1 }
    #embed_typeでYoutubeかTwitterを選択する。

  validates :identifier, length: { maximum: 200 }
    #identifierでURLを保存します。
end

入力フォーム

YoutubeかTwitterかを選択し、identifierを入力できるように設定します。

(gem 'simple_form'を使っています。)

article_blocks/_edit_embed.html.slim