【发布时间】:2011-02-08 12:04:57
【问题描述】:
我有一个控制器,用于控制联系页面上的联系我们表单。在routes.rb 文件中,我有一行写着match '/contact', :to => 'feedback#new'。现在,当表格填写正确时,一切正常;网址是“/联系人”。但是,当表格填写不正确时,我的控制器 renders 'new' 和 url 从 '/contact' 更改为 '/feedback'。有人可以告诉我为什么会发生这种情况以及如何解决它,以便在触发验证并呈现页面时,url 仍然是/contact 而不是/feedback?谢谢!
我的控制器代码:
【问题讨论】:
-
您能列出您的
config/routes.rb文件的内容吗? Edit 视图代码也会有所帮助。如果您使用form_for(@feedback),当表单发布时,它会向/feedback发送POST,因为Rails 使用RESTful URL。请记住,URL 基于控制器和操作的路由,而不是您正在呈现的视图的名称。FeedbackController#create可能映射到/feedback(检查rake routes) -
你是对的
FeedbackController#create映射到/feedback路由。那么我该怎么做才能回答我上面的问题呢? -
你有没有想过这个问题?我正在为此苦苦挣扎。
-
@skaz - 是也不是。我发现如果你在控制器的 create 动作中设置标题,当调用 render 时,url 仍然会设置为你想要的;但是,我不确定这是应该如何完成的,还是只是一个快速修复。我仍然不知道为什么会这样。
-
我在我的创建中设置了@title,但它仍然没有帮助。你能提供任何代码吗?感谢您回复我。
标签: ruby-on-rails ruby-on-rails-3 controller url-routing