0

ここに画像の説明を入力

このメソッドを書いたとき、もっとうまく書けることはわかっていましたが、これは MVP です。今、私は専門家がアプローチをどのように考えているか、そして警察を解決する方法を学ぼうとしています. 絶え間ない学習!

問題のコントローラーメソッドは次のとおりです。

  def show
    if params[:id] && numeric?(params[:id])
      @job = Job.find_by(id: params[:id])
      if @job
        if @job.start_at
          if @job.end_at && @job.end_at >= Date.today
            @company = Company.find_by_id(@job.company_id)
            render 'jobs/show', layout: 'nested/job/show'
          else
            route_expired
          end
        else
          route_not_paid_for
        end
      else
        route_not_found_error
      end
    else
      route_not_found_error
    end
  end

次に、これらは一連のルートを呼び出して、ユーザーが取得したエラーの種類に基づいてどこに移動するかをユーザーに指示します。

  private

  def route_not_found_error
    flash[:error] = t('flash_messages.jobs.id.not_found')
    redirect_to new_job_url
  end

  def route_expired
    flash[:error] = t('flash_messages.jobs.id.expired')
    redirect_to new_job_url
  end

  def route_not_paid_for
    flash[:error] = t('flash_messages.jobs.id.not_paid_for')
    redirect_to job_payment_url(@job)
  end

専門家に、これにどのようにアプローチしますか? 私はこれがよりきれいでなければならないことを知っています。

4

1 に答える 1