繁体   English   中英

非常初学的RoR路由(新的动态URL)

[英]very beginner RoR routing (new dynamic URL)

我已经完成了“ 入门 ”Rails教程并尝试更好地理解路由,以便我可以扩展示例项目。 (我已经阅读了这个路由指南,但没有完全理解它 - 我认为我想做的事情比那里的内容更简单。)

以示例博客项目为基础,我试图添加查看给定作者的所有条目的功能。 我修改了原始项目,以便“作者”是数据库中的一个字段,可以在索引中访问(连同“标题”和“文本”)(我可以调用@ book.author),我想通了在单独的页面上列出所有作者和主题的(可能是非常hacky和不正确的)方式,但是我无法建立一种按作者过滤文章的方法。

与示例项目中的“show”链接将文章ID传递给控制器​​并给出具有该id的文章的视图的方式相同,我希望能够为每个将传递内容的作者提供类似的链接of:author字段到控制器以获取共享该作者的所有文章。

(我去了一个非常纠结的兔子洞,手动为“作者”设置一个单独的控制器,并试图在routes.rb文件中创建一个gets "authors/:author"行。创建控制器和一个我可以列出的视图作者自己也有所作为,但是任何尝试使用:author(或:id)作为参数设置路径(以便每个作者都有一个列出他的文章的页面)都不起作用 - 不确定为什么给它看起来,给我,与路由指南(上图)中显示的内容相同。但我很确定这不是这样做的方式,所以我重新开始尝试做正确的事。)

(我希望这个问题不太通用。我假设这里的答案非常简单 - 我只是无法从我见过的明显的文档或教程中找到答案。)

它通常是一个简单的嵌套资源......

resources :authors do
  resources :articles 
end

这给你一个路由authors /:author_id / articles(命名为author_articles_path(@author)

在你的文章索引控制器,你会做..

def index
  @author = Author.find(param[:author_id])
  @articles = @author.articles
end

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM