0

假设,我有模型ArticleCategoryHABTM 关系。我可以有不同的类别,名称如mobiledesktop。我需要每个类别的列表视图。例如/mobile路径给我所有Articles属于Category mobile/desktop路径给我所有Articles属于类别desktop/articles路径给我完全所有Articles。组织它的最佳方式是什么(控制器、视图、路由)?为每个类别创建控制器?但它不是 DRY ......用户稍后可能会添加类别......

4

2 回答 2

1

无需创建额外的控制器。

class ArticlesController
  def index
    @articles = case params[:type]
    when 'mobile'
      # .. select mobile articles
    when 'desktop'
      # .. select desktop articles
    else
      Article.all
    end

    # ...
  end
end

然后在routes.rb

match "/mobile", controller: :articles, action: :index, type: 'mobile'
match "/desktop", controller: :articles, action: :index, type: 'desktop'

resources :articles
于 2013-11-06T13:04:41.467 回答
1

路线:

get 'category/:type' => 'categories#index'

控制器:

def index
  type = params[:type]


  ## fetch categories based on type
  categories = Category.where(type: type)
end

您需要在这里查看的基本内容是路线。仅添加一条路线,可用于任意数量的类别类型

于 2013-11-06T13:08:00.113 回答