7--Rails路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7--Rails路由相关的知识,希望对你有一定的参考价值。

技术分享

?

路由配置文件中默认包含7种路由,我们排除掉show路由之后再去访问如下:

技术分享

技术分享

我们排除了show这个路由,那么还可以通过普通方式添加进去

动作是get,‘posts/:id‘是浏览器输入的路由格式,:to=>‘posts#show‘是交给对应的控制器和action

技术分享

技术分享

还有要注意请求动作不出现先url中,但是如果请求动作与action如果不对应,那么就算路由写对了,还是无法访问,比如show的完成动作应该是get而下面却写成post。

技术分享

技术分享

报错说找不到匹配的路由,因为浏览器对show请求方式是get,而我们路由配置文件写的是post,所以报错。

如果我们同时需要post和get,那么都写上就行了。

技术分享

技术分享

一个web工程接收http请求的方式除了在浏览器输入以外,在工程代码里就是以超链接的形式。

我们删除显示微博页面的那段代码:

技术分享

删除之后:

技术分享

首页Content下面的内容已经没有了,也没有Show那些超链接了

技术分享

那么我们想在这个页面添加链接,点击转到id为1的微博,可以这么写:

这里使用rails的辅助方法link_to,它的作用就是生成一个超链接标签,第一个参数就是标签的文字,第二个花括号链接的目的url的硬编码说明。

技术分享

技术分享

点击超链接之后:

技术分享

?

我们在路由配置中,如下图,那么些路由其实还是很麻烦

技术分享

更快捷的方式叫命名路由,也就是给路由起个名字作为全局名称,生成一个全局的url连接名称,使我们在创建一个url连接的时候不用再显示地写出路由的控制器、动作和参数,不用写出下面花括号内那样的长串,而是简单的写出路由的名称就可以

技术分享

命名路由的写法和用法也很简单,改成如下两个代码图即可

技术分享

技术分享

使用时show_post就是辅助方法,我们在后面加_path,参数传入id即可。其他用法类似。

以上是关于7--Rails路由的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

导致资产预编译在heroku部署上失败的代码片段

滚动经过片段时,Angular 10会获得路由器活动片段吗?

angularJS使用ocLazyLoad实现js延迟加载