MENU

コントローラーのリファクタリング

サイト

www.suumo-de-aimitu.com

サイトについて

spreadthec0ntents.com

やったこと

controllerのリファクタリング

 現状は「とりあえず動かすこと」を優先して実装したので、ほぼ全ての処理がcontrollerに集中していたので、これをリファクタリングしていく。

レコードを作成する、検索するのはmodelの役割

 当サイトでは、不正な利用を防止するために、一定期間見積もりのログを保存している。

 レコードの保存処理をcontrollerから各modelに移管する。

 こんなのとか。

  def self.create_mitumori_log(params, email)
    create(email_id: email.id, bukken_name: params[:room_name], url: params[:url],shop_names: params[:shop_list])
  end

 こんなのも。

  def self.find_or_create_email(mail)
    Email.find_or_create_by(email: mail)
  end

  def sent_before?(url)
    mitumori_logs.select { |log| log.url == url }.present?
  end

controllerに書く処理はなるべく画面遷移、画面の描画、parameterの処理に限定する

 リファクタリング後にcontrollerに残す処理は、なるべく画面遷移、画面の描画、parameterの処理に限定する。