我有一个控制器来控制联系人页面上的联系人表单.在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中的资源创建路径.而且,我假设路由是资源:反馈,当然会创建看起来像/反馈的路由.