2012-05-15 71 views
2

你好我下面一個軌道教程中,我使用的鐵軌3.2.3和我有這樣的錯誤路由錯誤路由錯誤的路由匹配[POST]「/電影/ 9 /編輯」

沒有路由匹配[POST ] 「/電影/ 9 /編輯」

這是我的HAML頁:

%H2編輯電影

=的form_tag edit_movie_path(@movie):方法=>:將做

=標籤:電影,:標題,'山雀le' = text_field:movie,'title'

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

=標籤:電影,:RELEASE_DATE, '發佈' = date_select:電影,:RELEASE_DATE

= submit_tag '保存更改'

這裏是我的控制器:

def編輯

@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) 

和我的路線:

電影GET /movies(.:format)電影#指數

 POST /movies(.:format)   movies#create 

new_movie GET /movies/new(.:format)電影#新 edit_movie GET /movies/:id/edit(.:format)電影#編輯

movie GET /movies/:id(.:format)  movies#show 

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

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

感謝您的幫助

回答

2

教程可能會引導你誤入歧途。

這是告訴你有你的表格PUT到編輯路徑。

你真的想PUT到正常的電影路徑。 PUT動詞暗示update

相反的:

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

嘗試:

= form_tag movie_path(@movie), :method => :put do 

事實上,你可能希望找到一個不同的教程。

0

那麼你正在嘗試後(放)在其上你的路由文件與一個get(完全相同的方式,它應該編輯動作要)

在你想一個標準的方式定義編輯動作發佈到您的創建或更新路徑,但是如果您想發送表單進行編輯,請使用方法獲取或更改路由以使編輯操作接受放入

相關問題