使rails资源系统决定实体的上下文

时间:2010-08-22 14:01:17

标签: ruby-on-rails rest resources

我想就如何以最佳方式做到这一点提出一些建议:

我有一个处理评论的Rails应用程序。每个评论都属于上下文,例如论坛主题或图像。上下文引用是多态的。

我有部分显示注释,并且该部分还包含编辑或删除它的链接。链接使用“edit_comment_path(the_comment)”和“comment_path(the_comment)”等生成。

现在,我希望在这些链接中包含上下文:而不是指向“/ comments / 38”的链接,我希望他们链接到“/ images / 5 / comments / 38”和“/ topics” / 3 / comments / 63“......

评论仅嵌套在一个级别中,因此例如永远不会有“/ forums / 18 / topics / 17 / comments / 74”链接。

应用程序应该有足够的信息来生成这些链接。但是最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是polymorphic_path助手。假设您在视图中有正确关联的实例,则可以创建路径,如以下示例所示:

edit_polymorphic_path([@image, the_comment]) # => /images/5/comments/38/edit

polymorphic_path([@topic, the_comment]) # => /topics/3/comments/63

这些规格可以任意嵌套。有关详情,请参阅here