关于rails路由中的:as 参数

自己创建了一个rails 工程,生成了一个叫note的脚手架。

现在我想要这个应用能够响应 根目录请求“/“ 所以在routes.rb下写如下代码:


  root :to=> 'notes#index' , :as =>'notes'

这里我给了 root函数一个 :as参数,是由于我对root函数的不理解,在一本书上看到了这个函数,找葫芦画瓢的写了这段代码。

然后“/” 根目录果然得到了响应,但是在create一条note时,发现note根本没有插入到数据库,查看网页源代码,发现生成的表单指向根目录,而不是应该的

指向的“/notes/”,_form.html.erb模板中 <%= form_for(@note) do |f| %> 用来生成模板,而这个函数应该调用了notes_path函数用来生成路径,而notes_path函数,原来

是由 resouces: notes 这句生成的,它返回 /notes 但是由于在root函数中指定了 :as 参数, 他同时创建了两个路径 notes_path 和 notes_url ,这两个路径指向了“/” 路径,

覆盖了resouces语句对它们的定义。


所以<%= form_for(@note) do |f| %> 会生成一个指向根目录的表单。


我这里猜测, 在控制器程序中, format.html 和 redirect_to @note 这些代码,都应该隐性的调用了Helper 类生成的路径函数。


关于 redirect_to @note 这个方法调用:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值