0

次のように設定したパーシャルをレンダリングしようとしています。accepts_nested_attributes_for :userまた、hospital_bookingsモデルに含めるネストされたフォームを作成しようとしています。次のエラーが発生しているようです。

Rota_days#indexのNameError

行#31が発生したC:/Users/home/Desktop/Portal/app/views/rota_days/index.html.erbを表示しています。

未定義のローカル変数またはメソッド`hospital_booking'

<%= render :partial => "booking_dialog", :locals => { :booking => hospital_booking.new } %>これは、以下に示すように、私のindex.html.erbの次の行を指しています。多元化と関係があると思いました。に変更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 %>
4

1 に答える 1

0

hospital_booking.newは無意味です。という名前のローカル変数はありませんhospital_bookingHospitalBookingモデルの新しいインスタンスが必要な場合は、が必要ですHospitalBooking.new

それで:

<%=  render :partial => "booking_dialog", :locals => { :booking => HospitalBooking.new } %>

更新(コメントから)

booking_dialog部分的な形式では、ブロック内の関連するレコードに属性を配置して、親(予約)のフィールドと区別する必要がありnameます。userfields_for

<%= 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 %>

psここに隠しフィールドがあるのはとても奇妙に思え:idます。あなたはそれを必要とすべきではありません。

于 2013-01-05T22:54:06.733 に答える