大多数Rails-y方式给出相同资源的不同视图?

时间:2010-03-15 01:50:26

标签: ruby-on-rails

在Rails中,是否有规范的方法来提供相同资源的不同视图?

例如,人员目录,每个人可以拥有多张照片,电话号码,电子邮件地址等。人员,照片和电话号码实际上是具有自己的REST动作的不同资源。

但在查看人物时,一页可能会显示每个人的姓名和相关照片;另一页是名称和相关的联系信息,格式化为打印。

是否会更多“Rails-y”:

  • 除了RESTful之外,还在People控制器上创建其他操作,例如“index_with_contact_info”?
  • 创建不同的控制器和不同的视图组?

对我来说似乎都不对,但第一个似乎更有可能。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我认为使用嵌套资源的情况已经成熟。 person/:person/photos/可以指向某人的照片,依此类推。您可能希望查看using nested resources上的大量材料。简而言之,

  map.resources :people, :has_many => { :photos, :contacts  }, :shallow => true

或路线中的某些变体,然后定义photoscontacts控制器,假设person_id可用。