假设我有HABTM关系的模型Article
和Category
。我可以使用mobile
,desktop
等名称来设置不同的类别。我需要每个类别的列表视图。例如,/mobile
路径为我提供Articles
所有属于Category mobile
,/desktop
路径的所有Articles
属于类别desktop
和{{1}路径完全给我/articles
。组织它的最佳方式是什么(控制器,视图,路线)?对于每个类别创建控制器?但它不是DRY ......用户以后可能会添加类别......
答案 0 :(得分: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
答案 1 :(得分:1)
路线:
get 'category/:type' => 'categories#index'
控制器:
def index
type = params[:type]
## fetch categories based on type
categories = Category.where(type: type)
end
您需要查看的基本内容是路线。只添加一个路径,可以适用于任意数量的类别类型