2011-09-26 49 views
1

所以我有一个资源类型Post,可以与类型为Category的资源相关联。我在我的routes.rb文件中的以下内容:范围导轨到模型的特定属性的路线

resources "code", :controller => :posts, :as => :code 
resources "sports", :controller => :posts, :as => :sports 
resources "gaming", :controller => :posts, :as => :gaming 
resources "personal", :controller => :posts, :as => :personal 

所以这给了我通过一个友好的URL访问特定类,http://host.domain/sports的预期的效果,这将收集所有与体育的一个类别的职位。但是,我并不完全确定如何将这些资源的范围限定为特定类别。我想我可以做这样的事情:

match ":category_name", :to => posts#index 

但这是有问题的,因为它会抓住一切。

所以我想总结一下我要找的是保持友好的网址(具体结构我指定)访问具有特定类别的帖子。思考?

+0

它只会赶上尚未抓到的一切 - 航线是顺序依赖,这可能是足以让你想要的行为。 –

回答

1

你有一些资源,应该可以访问每个自己的网址。四个资源是相同的类型,可以确定为的帖子。可以通过一个控制器提供它们的功能,并且很容易检测当前路径,然后解析并添加活动记录数示波器

但让我们看看更深入一点。您具有相同类型的数据,可能具有相同的属性,因此常见模式是“单表继承”,它等于一个表和更多模型,列“类型”与模型不同。

控制器提供用户交互和数据流之间的接口,所以我建议你为每个资源使用独立的控制器。这是一种普遍的做法。如果你不喜欢输入更典型的代码,使用丰富的控制器插件左右。

然后你就可以有结构:

#routes 
resources :code, sports, :gaming, :personal 

# STI parent and children models 
    model Post < ActiveRecord::Base 
    model Sport < Post 
    ...