この項目ではクリップに、コードを実装していきます。コントローラに書いたコードをモデルに移すイメージです。
では、実際に書いていきます。まず、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 [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。