我正在rails中創建博客應用程序。我有一個創建和更新博客的通用形式。Rails:沒有路由匹配[PUT]「/ blog/2」
這是視圖編輯和new.html.erb的
<%= render :partial => "form"%>
這是鑑於_form.html.erb的博客:
<%= form_for @blog do |f| %>
<%= f.text_field :title, :placeholder => "Title" %><br>
<%= f.cktext_area :article, :placeholder => "Content", :ckeditor => {:toolbar => "MyToolbar"} %>
<%= f.submit %>
<% end %>
我的博客是成功創建,但我得到的錯誤在更新行動。這是我在博客控制器編輯和更新操作:
def edit
@blog = Blog.find_by_slug(params[:id])
end
def update
@blog = Blog.find(params[:id]) || not_found
@blog.update_attributes(params[:blog])
redirect_to "/blogs/#{@blog.slug}"
end
當我打開從編輯視圖的形式,並點擊更新按鈕,它會引發錯誤:
No route matches [PUT] "/blog/2"
我的routes.rb是:
resources :blogs
get 'blog', to: 'blogs#index'
get '/blog/:id', to: 'blogs#show', as: 'blog'
我沒有得到它是怎麼了。我試圖在form_for中添加「url:blogs_path」,它刪除錯誤但不保存編輯更改。
任何人可以幫助我在哪裏,我錯了嗎?
謝謝。
發表您的routes.rb文件 – aromero
我建議你閱讀[入門使用Rails指南(http://guides.rubyonrails.org/getting_started.html)。看起來有一些基本原則(比如路由)你還不明白。 –
檢查您是否有「PUT /博客/:ID =>博客#更新」的路線,當你運行'在控制檯 –