Попытка создать CMS для блога с использованием rails 3.
В моем rout.rb ...
namespace :admin do
resources :posts
root :to => "home#index"
end
В Admin :: PostsController ...
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
format.html { redirect_to(@post,
:notice => 'Post was successfully updated.')}
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @post.errors,
:status => :unprocessable_entity }
end
end
end
Мне пришлось изменить первую строку admin / _form.html.erb из-за предыдущей ошибки 'undefined method', которая сводила меня с ума.Пытался указать браузеру на несуществующий "post_path".
<%= form_for(@post, :url => admin_posts_path(@post)) do |f| %>
Все остальные методы для сообщений работают должным образом.После отправки формы (обновления) - сервер rails ...
Started POST "/admin/posts.1"
ActionController::RoutingError (No route matches "/admin/posts.1"):
Во-первых, любопытно, почему он использует POST вместо PUT для обновления.
Во-вторых, я не могу понять, почему URL-адрес интерпретируется как "/admin/posts.1" и как его исправить.
Кто-нибудь еще сталкивался с этой проблемой?(и да, я внимательно следую инструкциям rubyonrails.org, чтобы помочь мне).Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ:
Изменено admin_posts_path(@post)
на admin_post_path(@post)
за theIV .
сервер рельсов ...
NoMethodError (undefined method 'post_url' for #<Admin::PostsController:0x00000102b26ff8>):
app/controllers/admin/posts_controller.rb:55:in 'block (2 levels) in update'
app/controllers/admin/posts_controller.rb:53:in 'update'