1

私は RoR を学習しようとしており、次のコードがあります。もっと簡単にできると思うだけです。RoR から私が理解していることは、繰り返さないようにして、物事をできるだけ簡単にする必要があるということです。したがって、誰かがこれについてアドバイスを持っているかもしれません:

    if params[:select_date].present?
  if params[:select_date] == '1'
    params[:search][:date_started_at_gte] = Date.today.beginning_of_month
  end
  if params[:select_date] == '2'
    params[:search][:date_started_at_gte] = Date.today - 1.months
  end
  if params[:select_date] == '3'
    params[:search][:date_started_at_gte] = Date.today - 3.months
  end
  if params[:select_date] == '0'
    params[:search][:date_started_at_gte] = params[:search][:date_started_at_gte]
    params[:search][:date_started_at_lte] = params[:search][:date_started_at_lte]
  end
else
    params[:search][:date_started_at_gte] = Date.today.beginning_of_month
    params[:search][:date_started_at_lte] = Date.today
end

ありがとう!

4

1 に答える 1

0
gte = lte = ''

case params[:select_date]
when '1'
  gte = Date.today.beginning_of_month
when '2'
  gte = Date.today - 1.months
#...
when '0'
  gte = params[:search][:date_started_at_gte]
  lte = params[:search][:date_started_at_lte]
else
  gte = Date.today.beginning_of_month
  lte = Date.today
end

ここでいくつかの新しい変数を使用gte, lteしました。params の値を変更しないことを強くお勧めします。

于 2013-07-06T06:36:05.613 に答える