Rails未定义方法`image'表示错误

时间:2013-06-18 13:13:10

标签: 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
 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>

现在使用new:image形式我得到错误未定义方法`image'for#所以我希望有人知道如何解决这个问题!谢谢!

1 个答案:

答案 0 :(得分: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 %>

请在此处查看字段_for的文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for