首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由错误没有与[POST]匹配的路由"/movies/9/edit“

路由错误没有与[POST]匹配的路由"/movies/9/edit“
EN

Stack Overflow用户
提问于 2012-05-15 12:26:17
回答 2查看 2.9K关注 0票数 2

您好,我正在学习rails教程,我正在使用rails 3.2.3,我有这个错误路由错误

没有与POST "/movies/9/edit“匹配的路由

这是我的haml页面:

%h2编辑影片

= form_tag edit_movie_path(@ => ),:method => :put do

= label :movie,:title,'Title‘= text_field :movie,'title’

= label :movie,:rating,'Rating‘= select :movie,:rating,'G','PG','PG-13','R','NC-17’

= label :电影,:release_date,‘发布日期’= date_select :电影,:release_date

= submit_tag‘保存更改’

这是我的控制器:

定义编辑

代码语言:javascript
复制
@movie = Movie.find params[:id]

结束

定义更新

代码语言:javascript
复制
@movie = Movie.find params[:id]
@movie.update_attributes!(params[:movie])
flash[:notice] = "#{@movie.title} was successfully updated."
redirect_to movie_path(@movie)

结束

和我的路线:

电影获取/movies(.:format) movies#index

代码语言:javascript
复制
       POST   /movies(.:format)          movies#create

new_movie GET /movies/new(.:format) movies#new edit_movie GET /movies/:id/edit(.:format) movies#edit

代码语言:javascript
复制
 movie GET    /movies/:id(.:format)      movies#show

       PUT    /movies/:id(.:format)      movies#update

       DELETE /movies/:id(.:format)      movies#destroy

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 12:33:35

本教程可能会让您误入歧途。

它会告诉您将表单PUT设置为编辑路径。

你真的想要PUT到正常的电影路径。PUT动词隐含了update

而不是:

代码语言:javascript
复制
= form_tag edit_movie_path(@movie), :method => :put do

尝试:

代码语言:javascript
复制
= form_tag movie_path(@movie), :method => :put do

实际上,你可能想找一个不同的教程。

票数 2
EN

Stack Overflow用户

发布于 2012-05-15 12:41:39

您正在尝试post (put)编辑操作,该操作在路由文件中使用get定义(与编辑操作的方式完全相同)

按照标准方式,您可能希望post到您的创建或更新路径,但如果您希望将表单发送到编辑,请使用方法get或更改编辑操作的路由以接受put

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10594135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档