ruby-on-rails - Rails - 嵌入式多态评论列表 + 添加评论表单 - 示例?

标签 ruby-on-rails model-view-controller forms comments polymorphism

大家好。正在开发我的第一个 Rails 应用程序。

我四处搜索 - 阅读了大量教程、文章和论坛帖子,观看了一些截屏视频,我发现了一些与我正在尝试做的事情相近的示例(特别是 http://railscasts.com/episodes/154-polymorphic-association 和 ep 196关于嵌套模型形式),但不完全是。

我有两个需要评论的模型(Podcast 和 BlogPost),我有一个评论模型,它与两者都多态相关。上面的 railscasts 有一个非常相似的例子(第 154 集),但 Ryan 使用了一整套嵌套路由,因此有用于添加和编辑评论的特定模板。我想要做的是在 Podcast 或 BlogPost 页面上显示评论列表,并在底部显示添加评论表单。我不需要单独的添加模板/路由,也不需要编辑的能力,只需要删除。

这是网络上非常常见的设计,但我找不到专门针对此模式的 Rails 示例。这是我目前的理解:

当然,我需要创建和删除操作的路由,但没有与这些相关联的模板。我还猜测正确的方法是创建一个可以包含在 Podcast 和 BlogPost 显示模板底部的部分。在我看来,部分的逻辑名称类似于 _comments.html.haml。我知道以模板命名传递给部分的对象是一个常见的约定,但是调用对象“评论”似乎与我的用例不匹配,因为我真正需要传递的是可评论对象(Podcast 或 BlogPost )。所以,我想我会使用 locals 选项进行渲染部分调用? (:commentable => @podcast)。

在部分内部,我可以调用 commentable.comments 来获取评论集合,用第二个部分渲染它(这次使用传统用例,调用部分 _comment.html.haml),然后创建一个提交到..的表单。 。 什么?在 REST 方面,它应该是对集合的 POST,即/podcast|blogpost/:id/comments,如果它是播客,我认为它的帮助程序是 podcast_comments_path(podcast) - 虽然不知道该怎么做,因为我使用的是多态注释。这将触发 Comment.create 操作,然后需要重定向回 podcast|blogpost 路径/podcast|blogpost/:id。

这有点让人不知所措,这就是为什么我真的希望找到一个专门实现这种设计的截屏视频或示例。

最佳答案

我想通了,实现了它,测试了它,最后写了一个教程来解释如何为别人做:

https://github.com/hcatlin/make_resourceful/wiki/embedded-nested-polymorphic-comments

关于ruby-on-rails - Rails - 嵌入式多态评论列表 + 添加评论表单 - 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160535/

相关文章:

javascript - 如何在不发送到服务器的情况下访问从 <input type ="file"/> 上传的文件内容?

php - onclick 表单通过 ajax 发送没有页面刷新

ruby-on-rails - 我怎样才能用 Ruby 方式编写这个 MySQL 查询?

c# - 我应该在 MVC 编码中使用什么标准

javascript - Rails Ajax 表单没有响应

javascript - 不了解 Backbone 的工作原理

swift - 如何使用 Swift 在 MVC 中避免臃肿的 ViewController?

ruby-on-rails - 尝试使用 Koala 进行 fb apprequest,但访问 token 已过期。我该如何处理?

ruby-on-rails - 如何模拟 rspec 辅助测试的请求对象?

mysql - 从父应用程序设置应用程序