У меня есть форма в представлении редактирования моего профиля, начинающаяся с этой строки:
<% form_for @profile, :html => { :multipart => true } do |f| %>
Профиль подвергается наследованию одной таблицы, и двумя подклассами являются Profile :: Artist и Profile :: Listener.
Когда я пытаюсь получить доступ к окну редактирования профиля, я получаю эту ошибку:
NoMethodError in Profiles#edit
Showing /rubyprograms/dreamstill/app/views/profiles/edit.html.erb where line #1 raised:
undefined method `profile_artist_path' for #<#<Class:0x103359a18>:0x1033560c0>
где строки 1 - это строка кода для формы, которую я разместил выше. Как я могу исправить эту ошибку?
UPDATE:
Я добавил этот код в свою модель профиля:
def self.inherited(child)
child.instance_eval do
def model_name
Vehicle.model_name
end
end
super
end
А теперь моя ошибка изменилась на:
NameError in Profiles#edit
Showing /rubyprograms/dreamstill/app/views/profiles/edit.html.erb where line #1 raised:
uninitialized constant Profile::Vehicle
ОБНОВЛЕНИЕ 2:
Я изменил первую строку формы на:
<% form_for(:profile, @profile, :url => {:controller => "profiles", :action => "update"}, :html => { :multipart => true }) do |f| %>
и кнопку отправки на <%= f.submit :profile %>
Теперь я просто получаю ошибку маршрута ...