2013-06-18 5 views
0

Я хотел бы добавить к моим рельсам приложение новая модели:Rails не определен метод `образ» для ошибки

rails g model Painting patient:references treatment:references image:string 

Я бег миграции, а затем добавить несколько строк в другие контроллеры В модели лечения:

has_many :paintings 

и в контроллере пациента

has_many :paintings, :through => :treatments 

Как и я обновил маршрут эс в:

resources :treatments do 
resources :paintings 
end 

Так я надеялся, что это целью достаточно, чтобы добавить ImageName к обработке, так что я настроил форму для лечения:

<%= form_for([@patient, @patient.treatments.build]) do |f| %> 

<div class="field" > 
<%= f.label :content %> 
<%= f.text_area :content %> 
</div> 

<div class="field" > 
<%= f.label :day %> 
<%= f.text_field :day, :value => Date.today %> 
</div> 

     <div class="field" > 
     <%= f.label :image %> 
     <%= f.text_field :image %> 
     </div> 

<div class="actions"> 
<%= f.submit nil, :class => 'btn btn-small btn-primary' %> 
</div> 

Теперь с новым: формами изображения я получаю ошибка неопределенного метода `image 'для # Так что я надеюсь, что кто-то знает, как исправить эту проблему! Благодаря!

ответ

1

Я думаю, что проблема заключается в том, что хелпер формы ожидает, что «образ» будет методом @patient, а не «обработкой». Для помощников fields_for может потребоваться доступ к атрибутам полей соответствующей модели. Что-то вроде этого:

<% fields_for @patient.paintings do |paintings_fields| %> 
    <div class="field" > 
    <%= paintings_fields.label :image %> 
    <%= paintings_fields.text_field :image %> 
    </div> 
<% end %> 

Смотрите документацию для fields_for здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

+0

Да вот хороший момент, я опустил fields_for! Сначала я попробовал что-то с f.fields_for картин и чем ваш ответ! Но я получаю и ту же ошибку: неизвестный атрибут: painting –

+0

Да, это ** должно ** быть картинами из-за сквозной ассоциации: я отредактировал свой ответ, чтобы отразить это. Похоже, что это сама ассоциация, которая подозревается, хотя ... Вы пробовали ассоциации в консоли? – th3sku11

Смежные вопросы