我正在尝试渲染我已设置的部分内容如下。我还试图创建一个嵌套的表单,我已将accepts_nested_attributes_for :user
包含在我的hospital_bookings模型中。我似乎得到以下错误:
Rota_days #index
中的NameError显示 C:/Users/home/Desktop/Portal/app/views/rota_days/index.html.erb 第31行引出的地方:
未定义的局部变量或方法`hospital_booking'for
指向我的index.html.erb的以下行<%= render :partial => "booking_dialog", :locals => { :booking => hospital_booking.new } %>
,如下所示。我认为这与我的复数有关。将hospital_bookings.new
更改为hospital_booking.new
但这不起作用
_booking_dialog.html.erb
<%= form_for booking do |f| %>
<%= f.fields_for :user do |f| %>
<br/>
<%= f.label :name %>
<br/>
<%= f.text_field :name %>
<%= f.hidden_field :hospital_id %>
<%= f.hidden_field :id unless booking.new_record? %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
答案 0 :(得分:0)
hospital_booking.new
没有意义:您没有名为hospital_booking
的本地变量。如果您想要HospitalBooking
模型的新实例,那么您需要HospitalBooking.new
。
所以:
<%= render :partial => "booking_dialog", :locals => { :booking => HospitalBooking.new } %>
更新(来自评论)
在booking_dialog
表单部分中,您需要将name
属性放在fields_for
块内的关联user
记录中,以便将其与父母(预订):
<%= form_for booking do |f| %>
<%= fields_for :user do |user_fields| %>
<%= user_fields.label :name %>
<%= user_fields.text_field :name %>
<% end %>
<%= f.hidden_field :hospital_id %>
<%= f.hidden_field :id unless booking.new_record? %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
P.S。你在这里:id
有一个隐藏的字段似乎很奇怪。你不应该那样。