加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:为什么调用`render’new’时,自定义url

发布时间:2020-12-16 19:40:45 所属栏目:百科 来源:网络整理
导读:我有一个控制器来控制联系人页面上的联系人表单.在routes.rb文件里面我有一行表示匹配’/ contact’,:to = “反馈#新”.现在当表单正确填写时,一切正常;该网址是’/ contact’.但是,当表单未正确填写时,我的控制器会显示“新”,并且URL从“/ contact”更改
我有一个控制器来控制联系人页面上的联系人表单.在routes.rb文件里面我有一行表示匹配’/ contact’,:to => “反馈#新”.现在当表单正确填写时,一切正常;该网址是’/ contact’.但是,当表单未正确填写时,我的控制器会显示“新”,并且URL从“/ contact”更改为“/ feedback”.有人可以告诉我为什么会发生这种情况,以及我如何修复它,以便如果验证被触发并且页面被呈现,那么url将是/联系静止而不是/反馈?谢谢!

我的控制器代码:

解决方法

match '/contact',:to => 'feedback#new'

该路由只会匹配/联系FeedbackController#new.

您将需要添加以将“post”部分匹配到FeedbackController#create

match '/contact',:to => 'feedback#create',:via => :post,:as => :post_contact
# change :as => to whatever path for this you'd like to use,ex :as => :create_contact

您的表单现在将更改为

= form_for(@feedback),:url => post_contact_path do |f|

只要使用默认的form_for,将尝试从routes.rb中的资源创建路径.而且,我假设路由是资源:反馈,当然会创建看起来像/反馈的路由.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读