【问题标题】:Most Rails-y way to give different views of the same resource?大多数 Rails-y 方法可以给出相同资源的不同视图?
【发布时间】:2010-03-15 01:50:26
【问题描述】:

在 Rails 中,是否有一种规范的方法可以为同一资源提供不同的视图?

例如,一个人的目录,其中每个人可以有多张照片、电话号码、电子邮件地址等。这些人、照片和电话号码实际上是不同的资源,具有它们自己的 RESTful 操作。

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

是否会更像“Rails-y”:

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

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我认为这种情况适合使用嵌套资源。 person/:person/photos/ 可以指向一个人的照片等等。 using nested resources 上有很多您可能想查看的材料。总之,

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

    或在您的路由中对其进行一些变体,然后在 person_id 可用的情况下定义 photoscontacts 控制器。

    【讨论】:

    • 我喜欢这个。一旦您意识到“人和他们的照片”与“照片和他们的人”是一回事,这就是这个标准解决方案。
    • 太棒了——看起来更干净了。我知道我错过了一些东西。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多