我知道在 URL 中只包含确定模型对象所需的参数是一种很好的做法。如果我有 2 个模型,帖子和评论......一个帖子有很多评论,一个评论属于一个帖子。评论的 URL 可以是
/comment/:comment_id
并且从关联中我可以确定它属于哪个 Post 但某些 Rails 应用程序需要访问外部资源(例如通过 API)。如果 rails 应用程序需要复制另一个外部源的一部分,那么处理 URL 和路由的正确方法是什么?例如,如果一个帖子有一些评论,评论的 URL 可以是
/post/:post_id/comment/:comment_id
或者
/comment/:comment_id
后者有一个缺点,如果外部源的 API 无法确定它属于哪个帖子,我无法确定它属于哪个帖子,这会导致通过应用程序导航出现一些问题,但它是一个短 URL,并允许用户轻松操纵 URL 以获得另一条评论(我认为这是一个优势)。同时使用第一个(长)链接会使 URL 变得很长,但我可以知道它属于哪个帖子。
The only solution I can think of is to make both possible but the user would never know that the short one exists if I make the long one the default. What do you think?