作为 Rails 初学者,我创建了一个简单的演示应用程序来试验嵌套表单。但不知何故,我的代码显示了奇怪的副产品:
我唯一的目标是在患者显示页面上为患者创建新的治疗方法,现在它显示输入字段,其中包含尚未创建的治疗方法和其他一些疯狂的东西!!我做错了什么?到目前为止我的步骤:
rails new hama
cd hama
rails g scaffold Patient name:string
rails g model Treatment content:string
rake db:migrate
患者型号:
attr_accessible :name, :treatments_attributes
has_many :treatments, :dependent => :destroy
accepts_nested_attributes_for :treatments
治疗模式:
attr_accessible :content
belongs_to :patient
在病人/节目中:
<b>Name:</b>
<%= @patient.name %>
</p>
<p>
<b>Treatments:</b>
<%= @patient.treatments.each do |treatment| %>
<%= treatment.content %>
<% end %>
</p>
<%= form_for @patient do |f| %>
<%= f.fields_for :treatments do |ff| %>
<%= ff.text_field :content %>
<% end %>
<%= f.fields_for :treatments do |ff| %>
<%= ff.text_field :content %>
<% end %>
<%= f.submit %>
<% end %>
在患者控制器中:
def show
@patient = Patient.find(params[:id])
treatment = @patient.treatments.build
respond_to do |format|
format.html # show.html.erb
format.json { render json: @patient }
end
end