【发布时间】:2013-06-15 01:54:03
【问题描述】:
我创建了一个简单的 Rails 项目。一切正常,直到我尝试添加一个新模型 Paintings belongs_to 处理和一个 Patient has_many 通过处理进行绘画。所以不知何故我创建的嵌套表单没有出现,我相信它与控制器有关!谢谢,来自德国的问候!
治疗控制器:
class TreatmentsController < ApplicationController
def create
@patient = Patient.find(params[:patient_id])
@treatment = @patient.treatments.create(params[:treatment])
redirect_to patient_path(@patient)
end
def destroy
@patient = Patient.find(params[:patient_id])
@treatment = @patient.treatments.find(params[:id])
@treatment.destroy
redirect_to patient_path(@patient)
end
end
还有没有显示nested fields_for 的治疗表格:
<%= form_for([@patient, @patient.treatments.build]) do |f| %>
<div class="field">
<%= f.label :content %>
<%= f.text_area :content, :cols => "30", :rows => "10" %>
</div>
<div class="field">
<%= f.label :category_id %>
<%= f.collection_select :category_id, Category.find(:all), :id, :typ %>
</div>
<%= f.fields_for :paintings do |ff| %>
<div class="field">
<%= ff.label :name, 'Tag:' %>
<%= ff.text_field :name %>
</div>
<% end %>
<div class="field">
<%= f.submit nil, :class => 'btn btn-small btn-primary' %>
</div>
<% end %>
更新:
展会现场:
<% @patient.treatments.each do |treatment| %>
<tr>
<td><%= treatment.category.try(:typ) %></td>
<td><%= treatment.content %></td>
<td><%= treatment.day %></td>
<td><div class="arrow"></div></td>
</tr>
<tr>
【问题讨论】:
-
试试 f.fields_for :paintings, Painting.new do |m|。另外,你能把模型代码和控制器代码更详细地贴出来吗?
-
哈哈你最好!我试了两天,现在你只用了一点点代码就做到了!请将您的评论移至答案,以便我将其设置为正确答案!
标签: ruby-on-rails ruby ruby-on-rails-3