在Rails控制器中的一个操作或多个操作中切换语句?

时间:2015-03-26 04:52:40

标签: ruby-on-rails ruby-on-rails-4

我将这个网站用于我有不同类别的衣服,并且我有一个名为“Items”的资源用于管理每件衣服(因为我在某处读过,每个资源都有一个控制器)。

例如,如果我想要展示夹克,我有这样的路线:

get '/jackets', to: 'items#index', page: 'jackets'

控制器有一个索引操作,它有一个switch语句,里面有所有不同的可能性(我在这里使用范围):

def index
    case params[:page]

    # Women / Clothing
    when "clothing"
      @items = Item.clothing
    when "beachwear"
      @items = Item.beachwear
    when "coats"
      @items = Item.coats

这是正确的方法吗?或者我应该对我所拥有的每种类别采取单一行动吗?

提前致谢并抱歉我的英文不好

编辑:我有近100个类别。

1 个答案:

答案 0 :(得分:0)

Item.clothingItem.coats等,范围还是?你是如何实现你的模型的?

为什么不做以下事情:

def index
  @items = Item.where(category: params[:category])
end

(当然,前提是您在category模型中添加了Item字段)

请注意,由于语义原因,我将params[:page]更改为params[:category]