我想在我的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#所以我希望有人知道如何解决这个问题!谢谢!
答案 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