Я работаю с моделью, которая, как мне известно, работает (записи существуют в базе данных, их можно искать и отображать в других представлениях и т. Д.), Но когда я пытаюсь использовать тег form_for для создания представления для редактируя одну из этих записей, я получаю сообщение об ошибке:
Показывает /var/www/caucus/app/views/registration_loader/checkIn.html.erb
, где поднята строка # 13:
undefined method `voter_path' for #<#<Class:0x98cabdc>:0x98c8878>
Извлеченный источник (около строки № 13):
10: </div>
11:
12: <%= form_for(
13: @voter,
14: { :controller => "registration_loader",
15: :action => "editVoter"
16: } ) do |f| %>
@voter
относится к объекту избирателя, полученному с помощью:
# Get the voter.
@voter = Voter.where( [ "voter_id = ?", @voterId ] )[ 0 ]
if not @voter
flash[ :error ] = "NO VOTER!"
redirect_to :action => 'search'
elsif not @voter.kind_of?( Voter )
flash[ :error ] = "NO VOTER RECORD! (#{@voter.class.to_s})"
redirect_to :action => 'search'
end
Когда я изменяю @voter
на :voter
, он перестает выдавать ошибку, но не заполняет поля в моем представлении данными для записи, которую я хочу редактировать.
Согласно руководству по API Rails 3.1, передача объекта модели в form_for
должна генерировать код, который позволяет мне редактировать данные в этом объекте, но очевидно, что отсутствует вспомогательный метод (voter_path
). Где этот метод voter_path
должен быть определен, и какова его надлежащая семантика и сигнатура? Нигде в документации не рассматривается создание такого метода, и я не могу найти никаких примеров написания такого метода.
Метод *_path
должен генерироваться автоматически? Если нет, может кто-нибудь указать мне документацию, в которой указан синтаксис и семантика этого метода?
Спасибо,
Джон С.