このメソッドを書いたとき、もっとうまく書けることはわかっていましたが、これは 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
専門家に、これにどのようにアプローチしますか? 私はこれがよりきれいでなければならないことを知っています。