您好,我正在学习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‘保存更改’
这是我的控制器:
定义编辑
@movie = Movie.find params[:id]结束
定义更新
@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
POST /movies(.:format) movies#createnew_movie GET /movies/new(.:format) movies#new edit_movie GET /movies/:id/edit(.:format) movies#edit
movie GET /movies/:id(.:format) movies#show
PUT /movies/:id(.:format) movies#update
DELETE /movies/:id(.:format) movies#destroy谢谢你的帮助
发布于 2012-05-15 12:33:35
本教程可能会让您误入歧途。
它会告诉您将表单PUT设置为编辑路径。
你真的想要PUT到正常的电影路径。PUT动词隐含了update。
而不是:
= form_tag edit_movie_path(@movie), :method => :put do尝试:
= form_tag movie_path(@movie), :method => :put do实际上,你可能想找一个不同的教程。
发布于 2012-05-15 12:41:39
您正在尝试post (put)编辑操作,该操作在路由文件中使用get定义(与编辑操作的方式完全相同)
按照标准方式,您可能希望post到您的创建或更新路径,但如果您希望将表单发送到编辑,请使用方法get或更改编辑操作的路由以接受put
https://stackoverflow.com/questions/10594135
复制相似问题