“你要找的页面不存在。”编辑表格

时间:2014-11-17 11:04:22

标签: ruby-on-rails forms routes

我有以下路线

namespace :dashboard do
  get   '/courses/:id/edit'                     => 'courses#edit',                :as => :edit_course
  put   'courses/:id/update'                    => 'courses#update'
end

以及表格

  = form_tag dashboard_edit_course_url( @course), :method => 'post', :multipart => true do
    ...

操作

<form accept-charset="UTF-8" action="http://localhost:3000/dashboard/courses/54633b9fc14ddd104c004de3/edit" enctype="multipart/form-data" method="post">

但是当我提交表单时,我收到了这个错误:

  

您要查找的页面不存在。

     

您可能输错了地址或页面可能已移动。

我不明白为什么?有人可以解释一下吗?

3 个答案:

答案 0 :(得分:2)

另一种处理此问题的方法。在你的路线写道:

namespace :dashboard
  resources :courses, only: [:edit, :update]
end

在你看来写:

= form_tag [:dashboard, @course], multipart: true do |f| 

然后你将使用rails默认值。

答案 1 :(得分:1)

您的表单声明使用post,但您没有配置post route

执行此操作的方法是通过put将表单提交到更新路径,因为您是updating a record

= form_tag dashboard_update_course_path( @course), :method => 'put', :multipart => true do

此外,您可能想要use path instead of url

然后只需命名update route

namespace :dashboard do
  get   '/courses/:id/edit' => 'courses#edit', :as => :edit_course
  put   '/courses/:id/update' => 'courses#update', :as => :update_course
end

答案 2 :(得分:0)

第一个参数是表单提交应该去的地方(更新)。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag