다음 루비 레일 코드 스 니펫에 약간의 문제가 있습니다 - 책이 있고 책 이름을 업데이트하고 싶습니다. 여기에 어떻게하려고합니까 :업데이트 방법 "경로가 [POST]와 일치하지 않습니다."
root to: 'authors#index'
resources :books, :authors
나는하십시오이 내 루트입니다
def edit
@book = Book.find(params[:id])
end
def update
@book = Book.find(params[:id])
if @book.update_attributes(params[:book])
redirect_to :action => 'show', id => @book
else
@subjects = Subject.find(:all)
render :action => 'edit'
end
end
:
<h1>Edit the book "<%= @book.name %>"</h1>
<%= form_tag action: :update, id: @book do %>
<p>
<label for="book_name">Name</label>
<%= text_field :book, :name %>
<%= submit_tag 'Save changes' %>
</p>
<% end %>
이 내가 책 컨트롤러에서 할 것입니다 양식에 단추를 제출하면 No route matches [POST] "/books/5"
이 표시되고 localhost : 3000/books/5 대신에 localhost : 3000/books/5/edit
여기서 내가 뭘 잘못하고 있니? 게시물 메서드가 아닌 어딘가에서 물건을 업데이트하기위한 put 메서드가 있어야하지 않습니까?
쿨, 고마워, 그랬어! 나는 자원이 충분하다고 생각했지만, 책은 충분하지 않았을까? – weltschmerz