0

これら 2 つの方法を 1 つにまとめたいと考えています。しかし、私の人生では、方法がわかりません。NOOBビッグタイム。助けていただければ幸いです。

  def is_active_no_category
      'active' if params[:category].blank?
  end


  def is_active(category)
      'active' if  params[:category] == category.name.parameterize
  end
4

1 に答える 1

2

以下の関数では、引数として a を渡すことcategoryはオプションです。引数を渡さない場合は、メソッドのように機能しますis_active_no_category引数を渡す場合。それはあなたのis_active方法のように機能します。

def is_active(category = nil)
  'active' if (category.present? && params[:category] == category.name.parameterize) || (category.nil? && params[:category].blank?)
end

ステートメントをよりコンパクトにすることができるかもしれませんがif、関数の正確な要件を述べていないため、最も完全なソリューションを提供しました.

于 2012-05-19T07:40:17.890 に答える