0

我有这两种方法,我想将它们合二为一。但对于我的生活,我看不到如何。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

使用下面的函数将 acategory作为参数传递是可选的。如果您传递参数,它将像您的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 回答