我正在 Rails 中创建博客应用程序。我有一个用于创建和更新博客的通用表格。
这是编辑和 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”,它消除了错误但不保存编辑更改。
有人可以帮我这里哪里出错了吗?
谢谢你。