Ruby on rails Rails未定义的方法`image';错误

Ruby on rails Rails未定义的方法`image';错误,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我想在我的rails应用程序中添加一个新模型: rails g model Painting patient:references treatment:references image:string 我运行迁移,然后将一些行添加到其他控制器 在治疗模式中: has_many :paintings 在病人控制器中 has_many :paintings, :through => :treatments 此外,我还将路线更新为: resources :treatments do res

我想在我的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>

Date.today%>
“btn btn小型btn主节点”%>

现在有了新的:image表单,我得到了#的错误未定义方法'image',所以我希望有人知道如何解决这个问题!谢谢

我认为问题在于表单助手希望“图像”是@patient的一种方法,而不是“治疗”。帮助器的字段可能是访问相关模型字段属性所需的字段。大概是这样的:

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


请参阅文档中的字段:

是的,这是一个很好的观点,我省略了字段!首先,我尝试了f.fields_的绘画作品,而不是你的答案!但我得到了两个相同的错误:未知属性:绘画是的,它应该是绘画,因为通过关联:我编辑了我的答案来反映这一点。这听起来像是协会本身,但值得怀疑。。。您在控制台中尝试过关联吗?