В чем причина этой ошибки, когда я пытаюсь редактировать объект RoR, созданный с помощью скаффолда? - PullRequest
0 голосов
/ 29 августа 2010

Что вызывает эту ошибку, когда я нажимаю на кнопку редактирования для заметки? Кнопка удаления работает нормально. Я создал объект заметки с помостом.

index.html.erb

<% @notes.each do |note| %>
    <%= note.detail %>
    <%= button_to 'Delete', note, :confirm => 'Are you sure?', :method => :delete %>
    <%= button_to 'Edit', edit_note_path(note) %>
<% end %>

notes_controller.rb

before_filter :check_ownership, :except => [:new, :create, :index, :edit]
def edit
    @note = Note.find(params[:id])
end

Error

ActiveRecord::RecordNotFound in NotesController#192 
Couldn't find Note with ID=edit
../app/controllers/notes_controller.rb:248:in `check_ownership'
Parameters:
{"id"=>"edit"}

EDIT конфиг / routes.rb

map.resources :notes

Все остальные маршруты для заметок работают нормально.

Спасибо за чтение

1 Ответ

2 голосов
/ 29 августа 2010

Действие контроллера Scaffold 'edit' и поддержка по умолчанию для маршрутизации 'edit' как GET, а не как запрос POST.

Если вы используете link_to вместо button_to, все должно работать.

Либо измените строку, содержащую button_to -

<%= button_to 'Edit', edit_note_path(note), :method => :get %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...