【Rails応用講座 6】モデルをもっと理解する >
クリップに実装する

実装する

この項目ではクリップに、コードを実装していきます。コントローラに書いたコードをモデルに移すイメージです。

では、実際に書いていきます。まず、clip.rbを開いて以下を追加します。これは、MetaInspectorの部分です。コントローラのMetaInspector部分は、削除してください。

clip.rb(モデルファイル)には以下コードを追加してください。

before_save :create_page #メソッド 呼び出し

 def create_page
    begin
      page = MetaInspector.new(url)
      self.title = page.title
      self.description = page.best_description
      self.image = page.images.best
    rescue => error
      errors.add(:base, "無効なURLです。")
      throw :abort
    end
  end

モデルにコードを移したことで、コントローラが非常にすっきりしたと思います。

# clips_controller.rb

def create
  @clip = Clip.new(clip_params)
  …

課題

コードを移動してみましょう。今までコントローラに書いてあったコードをモデルに移動して、コミットとマージ、プッシュ、Herokuへのデプロイを行ってみて下さい。

$ git add .
$ git commit –m "Add MetaInspector"
$ git checkout master
$ git merge create-clip
$ git push
$ git push heroku master
$ heroku run rails db:migrate

まとめ

モデルにコードを書く理由はや書き方、インスタンスメソッド・クラスメソッド・コールバックの使い方について学びました。

無料ビデオ講座のお知らせ

Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。

無料講座一覧を見る